diff options
Diffstat (limited to '_darcs/tentative_pristine')
-rw-r--r-- | _darcs/tentative_pristine | 287 |
1 files changed, 287 insertions, 0 deletions
diff --git a/_darcs/tentative_pristine b/_darcs/tentative_pristine index e69de29bb..04a3f84cd 100644 --- a/_darcs/tentative_pristine +++ b/_darcs/tentative_pristine @@ -0,0 +1,287 @@ +hunk ./actions/profilesettings.php 57 +- if ($this->arg('save')) { +- $this->save_profile(); +- } else if ($this->arg('upload')) { +- $this->upload_avatar(); +- } else if ($this->arg('changepass')) { +- $this->change_password(); +- } ++ if ($this->arg('save')) { ++ $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.')); ++ } +hunk ./actions/profilesettings.php 77 +- common_element_start('form', array('method' => 'POST', +- 'id' => 'profilesettings', +- 'action' => +- common_local_url('profilesettings'))); +- common_hidden('token', common_session_token()); +- +- # too much common patterns here... abstractable? +- +- common_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->arg('fullname')) ? $this->arg('fullname') : $profile->fullname); +- common_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->arg('bio')) ? $this->arg('bio') : $profile->bio, +- _('Describe yourself and your interests in 140 chars')); +- common_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->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()), +- _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated')); ++ common_element_start('form', array('method' => 'POST', ++ 'id' => 'profilesettings', ++ 'action' => common_local_url('profilesettings'))); ++ common_hidden('token', common_session_token()); ++ ++ # too much common patterns here... abstractable? ++ ++ common_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->arg('fullname')) ? $this->arg('fullname') : $profile->fullname); ++ common_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->arg('bio')) ? $this->arg('bio') : $profile->bio, ++ _('Describe yourself and your interests in 140 chars')); ++ common_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->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()), ++ _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated')); +hunk ./actions/profilesettings.php 118 +- +hunk ./actions/profilesettings.php 142 +- if ($original) { +- common_element('img', array('src' => $original->url, +- 'class' => 'avatar original', +- 'width' => $original->width, +- 'height' => $original->height, +- 'alt' => $user->nickname)); +- } ++ if ($original) { ++ common_element_start('div', array('id'=>'avatar_original', 'class'=>'avatar_view')); ++ common_element('h3', null, _("Original:")); ++ common_element_start('div', array('id'=>'avatar_original_view')); ++ common_element('img', array('src' => $original->url, ++ 'class' => 'avatar original', ++ 'width' => $original->width, ++ 'height' => $original->height, ++ 'alt' => $user->nickname)); ++ common_element_end('div'); ++ common_element_end('div'); ++ } +hunk ./actions/profilesettings.php 157 +- if ($avatar) { +- common_element('img', array('src' => $avatar->url, +- 'class' => 'avatar profile', +- 'width' => AVATAR_PROFILE_SIZE, +- 'height' => AVATAR_PROFILE_SIZE, +- 'alt' => $user->nickname)); +- } ++ if ($avatar) { ++ common_element_start('div', array('id'=>'avatar_preview', 'class'=>'avatar_view')); ++ common_element('h3', null, _("Preview:")); ++ common_element_start('div', array('id'=>'avatar_preview_view')); ++ common_element('img', array('src' => $original->url,//$avatar->url, ++ 'class' => 'avatar profile', ++ 'width' => AVATAR_PROFILE_SIZE, ++ 'height' => AVATAR_PROFILE_SIZE, ++ 'alt' => $user->nickname)); ++ common_element_end('div'); ++ common_element_end('div'); +hunk ./actions/profilesettings.php 169 ++ foreach(array('avatar_crop_x', 'avatar_crop_y', 'avatar_crop_w', 'avatar_crop_h') as $crop_info) { ++ common_element('input', array('name' => $crop_info, ++ 'type' => 'hidden', ++ 'id' => $crop_info)); ++ } ++ common_submit('crop', _('Crop')); ++ } +hunk ./actions/profilesettings.php 184 +- +hunk ./actions/profilesettings.php 410 +- @unlink($_FILES['avatarfile']['tmp_name']); +- } ++ @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.')); ++ } ++ } +hunk ./classes/Avatar.php 82 +- function to_image() { +- $filepath = common_avatar_path($this->filename); +- if ($this->mediatype == 'image/gif') { +- return imagecreatefromgif($filepath); +- } else if ($this->mediatype == 'image/jpeg') { +- return imagecreatefromjpeg($filepath); +- } else if ($this->mediatype == 'image/png') { +- return imagecreatefrompng($filepath); +- } else { +- return NULL; +- } +- } +- +- function &pkeyGet($kv) { +- return Memcached_DataObject::pkeyGet('Avatar', $kv); +- } ++ function scale_and_crop($size, $x, $y, $w, $h) ++ { ++ ++ $image_s = imagecreatetruecolor($size, $size); ++ $image_a = $this->to_image(); ++ ++ # Retain alpha channel info if possible for .pngs ++ $background = imagecolorallocate($image_s, 0, 0, 0); ++ ImageColorTransparent($image_s, $background); ++ imagealphablending($image_s, false); ++ ++ imagecopyresized($image_s, $image_a, 0, 0, $x, $y, $size, $size, $w, $h); ++ ++ $ext = ($this->mediattype == 'image/jpeg') ? ".jpeg" : ".png"; ++ ++ $filename = common_avatar_filename($this->profile_id, $ext, $size, common_timestamp()); ++ ++ if ($this->mediatype == 'image/jpeg') { ++ imagejpeg($image_s, common_avatar_path($filename)); ++ } else { ++ imagepng($image_s, common_avatar_path($filename)); ++ } ++ ++ $cropped = DB_DataObject::factory('avatar'); ++ $cropped->profile_id = $this->profile_id; ++ $cropped->width = $size; ++ $cropped->height = $size; ++ $cropped->original = false; ++ $cropped->mediatype = ($this->mediattype == 'image/jpeg') ? 'image/jpeg' : 'image/png'; ++ $cropped->filename = $filename; ++ $cropped->url = common_avatar_url($filename); ++ $cropped->created = DB_DataObject_Cast::dateTime(); # current time ++ ++ if ($cropped->insert()) { ++ return $cropped; ++ } else { ++ return NULL; ++ } ++ } ++ ++ function to_image() ++ { ++ $filepath = common_avatar_path($this->filename); ++ if ($this->mediatype == 'image/gif') { ++ return imagecreatefromgif($filepath); ++ } else if ($this->mediatype == 'image/jpeg') { ++ return imagecreatefromjpeg($filepath); ++ } else if ($this->mediatype == 'image/png') { ++ return imagecreatefrompng($filepath); ++ } else { ++ return NULL; ++ } ++ } ++ ++ function &pkeyGet($kv) ++ { ++ return Memcached_DataObject::pkeyGet('Avatar', $kv); ++ } ++ +hunk ./classes/Profile.php 124 +- function delete_avatars() { +- $avatar = new Avatar(); +- $avatar->profile_id = $this->id; +- $avatar->find(); +- while ($avatar->fetch()) { +- $avatar->delete(); +- } +- return true; +- } ++ function crop_avatars($x, $y, $w, $h) ++ { ++ ++ $avatar = $this->getOriginalAvatar(); ++ $this->delete_avatars(false); # don't delete original ++ ++ foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) { ++ # We don't do a scaled one if original is our scaled size ++ if (!($avatar->width == $size && $avatar->height == $size)) { ++ $s = $avatar->scale_and_crop($size, $x, $y, $w, $h); ++ if (!$s) { ++ return NULL; ++ } ++ } ++ } ++ return true; ++ } ++ ++ function delete_avatars($original=true) ++ { ++ $avatar = new Avatar(); ++ $avatar->profile_id = $this->id; ++ $avatar->find(); ++ while ($avatar->fetch()) { ++ if ($avatar->original) { ++ if ($original == false) { ++ continue; ++ } ++ } ++ $avatar->delete(); ++ } ++ return true; ++ } +hunk ./lib/settingsaction.php 63 +- function form_header($title, $msg=NULL, $success=false) { +- common_show_header($title, +- NULL, +- array($msg, $success), +- array($this, 'show_top')); +- } ++ function form_header($title, $msg=NULL, $success=false) ++ { ++ common_show_header($title, ++ array($this, 'show_header'), ++ array($msg, $success), ++ array($this, 'show_top')); ++ } ++ ++ function show_header() ++ { ++ common_element('link', array('rel' => 'stylesheet', ++ 'type' => 'text/css', ++ 'href' => common_path('js/jcrop/jquery.Jcrop.css?version='.LACONICA_VERSION), ++ 'media' => 'screen, projection, tv')); ++ common_element('script', array('type' => 'text/javascript', ++ 'src' => common_path('js/jcrop/jquery.Jcrop.pack.js'))); ++ common_element('script', array('type' => 'text/javascript', ++ 'src' => common_path('js/jcrop/jquery.Jcrop.go.js'))); ++ } |