]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - plugins/DomainWhitelist/lib/whitelistinviteform.php
Merge branch 'master' into 1.0.x
[quix0rs-gnu-social.git] / plugins / DomainWhitelist / lib / whitelistinviteform.php
1 <?php
2 /**
3  * StatusNet, the distributed open-source microblogging tool
4  *
5  * Fancy form for inviting collegues
6  *
7  * PHP version 5
8  *
9  * LICENCE: This program is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU Affero General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU Affero General Public License for more details.
18  *
19  * You should have received a copy of the GNU Affero General Public License
20  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21  *
22  * @category  Form
23  * @package   StatusNet
24  * @author    Zach Copley <zach@status.net>
25  * @copyright 2011 StatusNet, Inc.
26  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
27  * @link      http://status.net/
28  */
29
30 if (!defined('STATUSNET')) {
31     exit(1);
32 }
33
34 require_once INSTALLDIR . '/lib/form.php';
35
36 /**
37  * Form for inviting collegues and friends
38  *
39  * @category Form
40  * @package  StatusNet
41  * @author   Zach Copley <zach@status.net>
42  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
43  * @link     http://status.net/
44  *
45  */
46 class WhitelistInviteForm extends Form
47 {
48     private $whitelist = null;
49
50     /**
51      * Constructor
52      *
53      * @param Action $out output channel
54      */
55     function __construct($out, $whitelist)
56     {
57         parent::__construct($out);
58         $this->whitelist = $whitelist;
59     }
60
61     /**
62      * ID of the form
63      *
64      * @return string ID of the form
65      */
66     function id()
67     {
68        return 'form_invite';
69     }
70
71     /**
72      * Action of the form
73      *
74      * @return string URL of the action
75      */
76     function action()
77     {
78         return common_local_url('invite');
79     }
80
81     /**
82      * Name of the form
83      *
84      * @return void
85      */
86     function formLegend()
87     {
88         // TRANS: Form legend.
89         $this->out->element('legend', null, _m('Invite collegues'));
90     }
91
92     /**
93      * Data elements of the form
94      *
95      * @return void
96      */
97     function formData()
98     {
99         $this->out->elementStart('ul', 'form_data');
100         for ($i = 0; $i < 3; $i++) {
101             $this->showEmailLI();
102         }
103         $this->out->elementStart('li');
104         $this->out->textarea(
105             // TRANS: Field label for a personal message to send to invitees.
106             'personal', _m('Personal message'),
107             $this->out->trimmed('personal'),
108             // TRANS: Field title for a personal message to send to invitees.
109             _m('Optionally add a personal message to the invitation.')
110         );
111         $this->out->elementEnd('li');
112         $this->out->elementEnd('ul');
113     }
114
115     function showEmailLI()
116     {
117         $this->out->elementStart('li');
118         $this->out->input('username[]', '');
119         $this->out->text('@');
120         if (count($this->whitelist) == 1) {
121             $this->out->element(
122                 'span',
123                 array('class' => 'email_invite'),
124                 $this->whitelist[0]
125            );
126            $this->out->hidden('domain[]', $this->whitelist[0]);
127         } else {
128             $content = array();
129             foreach($this->whitelist as $domain) {
130                 $content[$domain] = $domain;
131             }
132             $this->out->dropdown('domain[]', '', $content);
133         }
134         $this->showMultiControls();
135         $this->out->elementEnd('li');
136     }
137
138     function showMultiControls()
139     {
140         $this->out->element(
141             'a',
142             array(
143                 'class' => 'remove_row',
144                 'href'  => 'javascript://',
145                 'style' => 'display: none;'
146             ),
147             '-'
148         );
149
150         $this->out->element(
151             'a',
152             array(
153                 'class' => 'add_row',
154                 'href'  => 'javascript://',
155                 'style' => 'display: none;'
156             ),
157             // TRANS: Link description to action to add another item to a list.
158             _m('Add another item')
159         );
160     }
161
162     /**
163      * Action elements
164      *
165      * @return void
166      */
167     function formActions()
168     {
169         $this->out->submit(
170             'send',
171             // TRANS: Send button for inviting friends.
172             _m('BUTTON','Send'), 'submit form_action-primary',
173             'send',
174             // TRANS: Submit button title.
175             _m('Send invitations.')
176         );
177     }
178 }