]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/profilesettings.php
Convert all actions to use new UI functions
[quix0rs-gnu-social.git] / actions / profilesettings.php
index 6c22a7933faf8a78f33c16a419ea74abe7cce141..ef45fc1d9f83f798db24b322c4bb6c22eb5842d7 100644 (file)
@@ -34,11 +34,11 @@ class ProfilesettingsAction extends SettingsAction
     {
         $this->form_header(_('Profile settings'), $msg, $success);
         $this->show_settings_form();
-        common_element('h2', null, _('Avatar'));
+        $this->element('h2', null, _('Avatar'));
         $this->show_avatar_form();
-        common_element('h2', null, _('Change password'));
+        $this->element('h2', null, _('Change password'));
         $this->show_password_form();
-//        common_element('h2', null, _('Delete my account'));
+//        $this->element('h2', null, _('Delete my account'));
 //        $this->show_delete_form();
         common_show_footer();
     }
@@ -58,8 +58,12 @@ class ProfilesettingsAction extends SettingsAction
             $this->save_profile();
         } else if ($this->arg('upload')) {
             $this->upload_avatar();
+        } else if ($this->arg('crop')) {
+            $this->crop_avatar();
         } else if ($this->arg('changepass')) {
             $this->change_password();
+        } else {
+            $this->show_form(_('Unexpected form submission.'));
         }
 
     }
@@ -70,48 +74,46 @@ class ProfilesettingsAction extends SettingsAction
         $user = common_current_user();
         $profile = $user->getProfile();
 
-        common_element_start('form', array('method' => 'POST',
+        $this->elementStart('form', array('method' => 'POST',
                                            'id' => 'profilesettings',
-                                           'action' =>
-                                           common_local_url('profilesettings')));
-        common_hidden('token', common_session_token());
+                                           'action' => common_local_url('profilesettings')));
+        $this->hidden('token', common_session_token());
         
         # too much common patterns here... abstractable?
         
-        common_input('nickname', _('Nickname'),
+        $this->input('nickname', _('Nickname'),
                      ($this->arg('nickname')) ? $this->arg('nickname') : $profile->nickname,
                      _('1-64 lowercase letters or numbers, no punctuation or spaces'));
-        common_input('fullname', _('Full name'),
+        $this->input('fullname', _('Full name'),
                      ($this->arg('fullname')) ? $this->arg('fullname') : $profile->fullname);
-        common_input('homepage', _('Homepage'),
+        $this->input('homepage', _('Homepage'),
                      ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage,
                      _('URL of your homepage, blog, or profile on another site'));
-        common_textarea('bio', _('Bio'),
+        $this->textarea('bio', _('Bio'),
                         ($this->arg('bio')) ? $this->arg('bio') : $profile->bio,
                         _('Describe yourself and your interests in 140 chars'));
-        common_input('location', _('Location'),
+        $this->input('location', _('Location'),
                      ($this->arg('location')) ? $this->arg('location') : $profile->location,
                      _('Where you are, like "City, State (or Region), Country"'));
-        common_input('tags', _('Tags'),
+        $this->input('tags', _('Tags'),
                      ($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()),
                      _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated'));
 
         $language = common_language();
-        common_dropdown('language', _('Language'), get_nice_language_list(), _('Preferred language'), true, $language);
+        $this->dropdown('language', _('Language'), get_nice_language_list(), _('Preferred language'), true, $language);
         $timezone = common_timezone();
         $timezones = array();
         foreach(DateTimeZone::listIdentifiers() as $k => $v) {
             $timezones[$v] = $v;
         }
-        common_dropdown('timezone', _('Timezone'), $timezones, _('What timezone are you normally in?'), true, $timezone);
+        $this->dropdown('timezone', _('Timezone'), $timezones, _('What timezone are you normally in?'), true, $timezone);
 
-        common_checkbox('autosubscribe', _('Automatically subscribe to whoever subscribes to me (best for non-humans)'),
+        $this->checkbox('autosubscribe', _('Automatically subscribe to whoever subscribes to me (best for non-humans)'),
                         ($this->arg('autosubscribe')) ? $this->boolean('autosubscribe') : $user->autosubscribe);
 
-        common_submit('save', _('Save'));
-
-        common_element_end('form');
+        $this->submit('save', _('Save'));
 
+        $this->elementEnd('form');
 
     }
 
@@ -130,47 +132,62 @@ class ProfilesettingsAction extends SettingsAction
         $original = $profile->getOriginalAvatar();
 
 
-        common_element_start('form', array('enctype' => 'multipart/form-data',
+        $this->elementStart('form', array('enctype' => 'multipart/form-data',
                                            'method' => 'POST',
                                            'id' => 'avatar',
                                            'action' =>
                                            common_local_url('profilesettings')));
-        common_hidden('token', common_session_token());
+        $this->hidden('token', common_session_token());
 
         if ($original) {
-            common_element('img', array('src' => $original->url,
+            $this->elementStart('div', array('id'=>'avatar_original', 'class'=>'avatar_view'));
+            $this->element('h3', null, _("Original:"));
+            $this->elementStart('div', array('id'=>'avatar_original_view'));
+            $this->element('img', array('src' => $original->url,
                                         'class' => 'avatar original',
                                         'width' => $original->width,
                                         'height' => $original->height,
                                         'alt' => $user->nickname));
+            $this->elementEnd('div');
+            $this->elementEnd('div');
         }
 
         $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
 
         if ($avatar) {
-            common_element('img', array('src' => $avatar->url,
+            $this->elementStart('div', array('id'=>'avatar_preview', 'class'=>'avatar_view'));
+            $this->element('h3', null, _("Preview:"));
+            $this->elementStart('div', array('id'=>'avatar_preview_view'));
+            $this->element('img', array('src' => $original->url,//$avatar->url,
                                         'class' => 'avatar profile',
                                         'width' => AVATAR_PROFILE_SIZE,
                                         'height' => AVATAR_PROFILE_SIZE,
                                         'alt' => $user->nickname));
-        }
+            $this->elementEnd('div');
+            $this->elementEnd('div');
 
+            foreach(array('avatar_crop_x', 'avatar_crop_y', 'avatar_crop_w', 'avatar_crop_h') as $crop_info) {
+                $this->element('input', array('name' => $crop_info,
+                                              'type' => 'hidden',
+                                              'id' => $crop_info));
+            }
+            $this->submit('crop', _('Crop'));
+        }
 
-        common_element('input', array('name' => 'MAX_FILE_SIZE',
+        $this->element('input', array('name' => 'MAX_FILE_SIZE',
                                       'type' => 'hidden',
                                       'id' => 'MAX_FILE_SIZE',
                                       'value' => MAX_AVATAR_SIZE));
 
-        common_element_start('p');
-
+        $this->elementStart('p');
 
-        common_element('input', array('name' => 'avatarfile',
+        $this->element('input', array('name' => 'avatarfile',
                                       'type' => 'file',
                                       'id' => 'avatarfile'));
-        common_element_end('p');
+        $this->elementEnd('p');
 
-        common_submit('upload', _('Upload'));
-        common_element_end('form');
+        $this->submit('upload', _('Upload'));
+        $this->elementEnd('form');
 
     }
 
@@ -178,23 +195,23 @@ class ProfilesettingsAction extends SettingsAction
     {
 
         $user = common_current_user();
-        common_element_start('form', array('method' => 'POST',
+        $this->elementStart('form', array('method' => 'POST',
                                            'id' => 'password',
                                            'action' =>
                                            common_local_url('profilesettings')));
 
-        common_hidden('token', common_session_token());
+        $this->hidden('token', common_session_token());
 
         # Users who logged in with OpenID won't have a pwd
         if ($user->password) {
-            common_password('oldpassword', _('Old password'));
+            $this->password('oldpassword', _('Old password'));
         }
-        common_password('newpassword', _('New password'),
+        $this->password('newpassword', _('New password'),
                         _('6 or more characters'));
-        common_password('confirm', _('Confirm'),
+        $this->password('confirm', _('Confirm'),
                         _('same as password above'));
-        common_submit('changepass', _('Change'));
-        common_element_end('form');
+        $this->submit('changepass', _('Change'));
+        $this->elementEnd('form');
     }
 
     function save_profile()
@@ -393,6 +410,23 @@ class ProfilesettingsAction extends SettingsAction
         @unlink($_FILES['avatarfile']['tmp_name']);
     }
 
+    function crop_avatar() {
+
+        $user = common_current_user();
+        $profile = $user->getProfile();
+
+        $x = $this->arg('avatar_crop_x');
+        $y = $this->arg('avatar_crop_y');
+        $w = $this->arg('avatar_crop_w');
+        $h = $this->arg('avatar_crop_h');
+
+        if ($profile->crop_avatars($x, $y, $w, $h)) {
+            $this->show_form(_('Avatar updated.'), true);
+        } else {
+            $this->show_form(_('Failed updating avatar.'));
+        }
+    }
+
     function nickname_exists($nickname)
     {
         $user = common_current_user();