diff --git a/doc/roadmap.bb b/doc/roadmap.bb index 4564f5fea..f57c76b74 100644 --- a/doc/roadmap.bb +++ b/doc/roadmap.bb @@ -2,26 +2,30 @@ Roadmap for $Projectname V3 +*HZ = Hubzilla repository + + Crypto Convert E2EE to dynamic loading (on demand) using jQuery.getScript() [or other methods] to only load encryption libs when you require them. This should also support multiple encryption libraries (e.g. SJCL, others) triggered from the choice of algorithm and remain pluggable. Diaspora - Convert core Diaspora federation code into a plugin. This presents a number of challenges since it touches and special cases a lot of core functionality. + Convert core Diaspora federation code into a plugin. This presents a number of challenges since it touches and special cases a lot of core functionality. (HZ - in progress) Subscriptions and business models - Build enough into core(/addons) to generate income (or at least try and cover costs) out of the box + Build enough into core(/addons) to generate income (or at least try and cover costs) out of the box (in progress Habeas Codice) Merge all uploads into common DAV interface - Separate photo albums from photos and turn them into file directories. - Upload everything direct to /store - If photo, generate thumbnails and image resources - Provide default upload folders with %y (and other?) macros for both photos and other file resources - Allow "media" (anything that we can generate a thumbnail for) in the Photos section (and show thumbnails in the Files section where possible) + Separate photo albums from photos and turn them into file directories. (HZ - done) + Upload everything direct to /store (HZ - done) + If photo, generate thumbnails and image resources (HZ - done) + Provide default upload folders with %y (and other?) macros for both photos and other file resources (HZ - done) + Allow "media" (anything that we can generate a thumbnail for) in the Photos section (and show thumbnails in the Files section where possible) (HZ - done) + Resolve the "every photo has an item" confusion, perhaps every file should also - but only if we can explain it and separate them conceptually. Migration tools Friendica importer - Diaspora importer + Diaspora importer (channel and connection import done, conversations and photos still in progress and waiting for support from Diaspora) Webpage design UI improvements If practical, separate "conversation" sub-themes from overall themes so one can choose different conversation and content layouts within a base theme. diff --git a/doc/to_do_code.bb b/doc/to_do_code.bb index bfa249dd5..21b567c3f 100644 --- a/doc/to_do_code.bb +++ b/doc/to_do_code.bb @@ -10,8 +10,8 @@ We need much more than this, but here are areas where developers can help. Pleas [li]Infinite scroll improvements (i.e. embedded page links) see http://scrollsample.appspot.com/items [li]Finish the anti-spam bayesian engine[/li] [li]implement an email permission denied bounce message from the sys channel[/li] -[li]provide a way for xchans with a certain network type to upgrade (unknown to rss, rss to statusnet, friendica-over-diaspora to friendica, for instance) based on new knowledge and/or hubzilla ability[/li] -[li]If DAV folders exist, add an option to the Settings page to set a default folder for attachment uploads.[/li] +[li]provide a way for xchans with a certain network type to upgrade (unknown to rss, rss to statusnet, friendica-over-diaspora to friendica, for instance) based on new knowledge and/or redmatrix ability[/li] +[li](done - HZ) If DAV folders exist, add an option to the Settings page to set a default folder for attachment uploads.[/li] [li]Integrate the "open site" list with the register page[/li] [li]implement oembed provider interface[/li] [li]refactor the oembed client interface so that we can safely sandbox remote content[/li] @@ -21,27 +21,27 @@ We need much more than this, but here are areas where developers can help. Pleas [li]restricted access OAuth clients[/li] [li](Advanced) create a UI for building Comanche pages[/li] [li](less advanced) create a way to preview Comanche results on a preview page while editing on another page[/li] -[li]Extend WebDAV to provide desktop access to photo albums[/li] +[li](done - HZ) Extend WebDAV to provide desktop access to photo albums[/li] [li]External post connectors - create standard interface[/li] [li]External post connectors, add popular services[/li] -[li]service classes - provide a pluggable subscription payment gateway for premium accounts[/li] -[li]service classes - account overview page showing resources consumed by channel. With special consideration this page can also be accessed at a meta level by the site admin to drill down on problematic accounts/channels.[/li] -[li]Events module - fix permissions on events, and provide JS translation support for the calendar overview; integrate with calDAV[/li] +[li](in progress Habeas Codice) service classes - provide a pluggable subscription payment gateway for premium accounts[/li] +[li](in progress Habeas Codice) service classes - account overview page showing resources consumed by channel. With special consideration this page can also be accessed at a meta level by the site admin to drill down on problematic accounts/channels.[/li] +[li]Events module - fix permissions on events, and provide JS translation support for the calendar overview (done); integrate with calDAV[/li] [li]Uploads - integrate #^[url=https://github.com/blueimp/jQuery-File-Upload]https://github.com/blueimp/jQuery-File-Upload[/url][/li] [li]Import/export - include events, things, etc.[/li] [li]API extensions, for Twitter API - search, friending, threading. For Red API, lots of stuff[/li] [li]OAuth permission extensions[/li] -[li]Import channel from Diaspora/Friendica[/li] +[li]Import channel from Diaspora/Friendica (Diaspora partially done)[/li] [li]MediaGoblin photo "crosspost" connector[/li] [li]Create management page/UI for extensible profile fields[/li] [li]Create interface to include/exclude and re-order standard profile fields[/li] -[li]Provide a mechanism to share page design elements in posts (just like apps)[/li] +[li]Provide a mechanism to share page design elements in posts (just like apps) (done)[/li] [li]App taxonomy[/li] [li]Customisable App collection pages[/li] [li]replace the tinymce visual editor and/or make the visual editor pluggable and responsive to different output formats. We probably want library/bbedit for bbcode. This needs a fair bit of work to catch up with our "enhanced bbcode", but start with images, links, bold and highlight and work from there.[/li] [li]Photos module - turn photos into normal conversations and fix tagging[/li] [li]Create mobile clients for the top platforms - which involves extending the API so that we can do stuff far beyond the current crop of Twitter/Statusnet clients. Ditto for mobile themes. We can probably use something like the Friendica Android app as a base to start from.[/li] -[li]Implement owned and exchangeable "things".[/li] +[li](in progress Habeas Codice) Implement owned and exchangeable "things".[/li] [li]Family Account creation - using service classes (an account holder can create a certain number of sub-accounts which are all tied to their subscription - if the subscription lapses they all go away).[/li] [li]Put mod_admin under Comanche[/li] diff --git a/images/default_profile_photos/alpha/175.png b/images/default_profile_photos/alpha/300.png similarity index 100% rename from images/default_profile_photos/alpha/175.png rename to images/default_profile_photos/alpha/300.png diff --git a/images/default_profile_photos/black_avatar_1/175.png b/images/default_profile_photos/black_avatar_1/300.png similarity index 100% rename from images/default_profile_photos/black_avatar_1/175.png rename to images/default_profile_photos/black_avatar_1/300.png diff --git a/images/default_profile_photos/black_avatar_2/175.png b/images/default_profile_photos/black_avatar_2/300.png similarity index 100% rename from images/default_profile_photos/black_avatar_2/175.png rename to images/default_profile_photos/black_avatar_2/300.png diff --git a/images/default_profile_photos/blank/175.jpg b/images/default_profile_photos/blank/300.jpg similarity index 100% rename from images/default_profile_photos/blank/175.jpg rename to images/default_profile_photos/blank/300.jpg diff --git a/images/default_profile_photos/blank/175.png b/images/default_profile_photos/blank/300.png similarity index 100% rename from images/default_profile_photos/blank/175.png rename to images/default_profile_photos/blank/300.png diff --git a/images/default_profile_photos/rainbow_man/175.jpg b/images/default_profile_photos/rainbow_man/300.jpg similarity index 100% rename from images/default_profile_photos/rainbow_man/175.jpg rename to images/default_profile_photos/rainbow_man/300.jpg diff --git a/images/default_profile_photos/rainbow_man/175.png b/images/default_profile_photos/rainbow_man/300.png similarity index 100% rename from images/default_profile_photos/rainbow_man/175.png rename to images/default_profile_photos/rainbow_man/300.png diff --git a/images/default_profile_photos/rainbow_man_trans/175.png b/images/default_profile_photos/rainbow_man_trans/300.png similarity index 100% rename from images/default_profile_photos/rainbow_man_trans/175.png rename to images/default_profile_photos/rainbow_man_trans/300.png diff --git a/images/default_profile_photos/red_avatar/175.png b/images/default_profile_photos/red_avatar/300.png similarity index 100% rename from images/default_profile_photos/red_avatar/175.png rename to images/default_profile_photos/red_avatar/300.png diff --git a/images/default_profile_photos/red_koala/175.jpg b/images/default_profile_photos/red_koala/300.jpg similarity index 100% rename from images/default_profile_photos/red_koala/175.jpg rename to images/default_profile_photos/red_koala/300.jpg diff --git a/images/default_profile_photos/red_koala/175.png b/images/default_profile_photos/red_koala/300.png similarity index 100% rename from images/default_profile_photos/red_koala/175.png rename to images/default_profile_photos/red_koala/300.png diff --git a/images/default_profile_photos/red_koala_trans/175.png b/images/default_profile_photos/red_koala_trans/300.png similarity index 100% rename from images/default_profile_photos/red_koala_trans/175.png rename to images/default_profile_photos/red_koala_trans/300.png diff --git a/images/default_profile_photos/redmatrix_logo_smiley/175.png b/images/default_profile_photos/redmatrix_logo_smiley/300.png similarity index 100% rename from images/default_profile_photos/redmatrix_logo_smiley/175.png rename to images/default_profile_photos/redmatrix_logo_smiley/300.png diff --git a/include/event.php b/include/event.php index 0d8b2132b..d2ae617f8 100644 --- a/include/event.php +++ b/include/event.php @@ -100,7 +100,7 @@ function format_ical_text($s) { require_once('include/bbcode.php'); require_once('include/html2plain.php'); - return(wordwrap(html2plain(bbcode($s)),72,"\n ",true)); + return(wordwrap(str_replace(',','\\,',html2plain(bbcode($s))),72,"\n ",true)); } diff --git a/include/identity.php b/include/identity.php index b0d62fba7..804f316d1 100644 --- a/include/identity.php +++ b/include/identity.php @@ -1392,10 +1392,10 @@ function get_theme_uid() { * with the specified size. * * @param int $size -* one of (175, 80, 48) +* one of (300, 80, 48) * @returns string */ -function get_default_profile_photo($size = 175) { +function get_default_profile_photo($size = 300) { $scheme = get_config('system','default_profile_photo'); if(! $scheme) $scheme = 'rainbow_man'; diff --git a/include/items.php b/include/items.php index af57e3eda..af76fe203 100755 --- a/include/items.php +++ b/include/items.php @@ -3384,6 +3384,11 @@ function post_is_importable($item,$abook) { $text = prepare_text($item['body'],$item['mimetype']); $text = html2plain($text); + $lang = null; + + if((strpos($abook['abook_incl'],'lang=') !== false) || (strpos($abook['abook_incl'],'lang=') !== false)) + $lang = detect_language($text); + $tags = ((count($item['term'])) ? $item['term'] : false); // exclude always has priority @@ -3400,6 +3405,8 @@ function post_is_importable($item,$abook) { } elseif((strpos($word,'/') === 0) && preg_match($word,$body)) return false; + elseif((strpos($word,'lang=') === 0) && ($lang) && (strcasecmp($lang,trim(substr($word,5))) == 0)) + return false; elseif(stristr($text,$word) !== false) return false; } @@ -3417,6 +3424,8 @@ function post_is_importable($item,$abook) { } elseif((strpos($word,'/') === 0) && preg_match($word,$body)) return true; + elseif((strpos($word,'lang=') === 0) && ($lang) && (strcasecmp($lang,trim(substr($word,5))) == 0)) + return true; elseif(stristr($text,$word) !== false) return true; } diff --git a/include/network.php b/include/network.php index f331da488..5173bc3d0 100644 --- a/include/network.php +++ b/include/network.php @@ -531,7 +531,7 @@ function avatar_img($email) { $avatar = array(); $a = get_app(); - $avatar['size'] = 175; + $avatar['size'] = 300; $avatar['email'] = $email; $avatar['url'] = ''; $avatar['success'] = false; diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index 1501e6712..426eb6aac 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -605,16 +605,16 @@ function import_profile_photo($photo,$xchan,$thing = false) { if(($width / $height) > 1.2) { // crop out the sides $margin = $width - $height; - $img->cropImage(175,($margin / 2),0,$height,$height); + $img->cropImage(300,($margin / 2),0,$height,$height); } elseif(($height / $width) > 1.2) { // crop out the bottom $margin = $height - $width; - $img->cropImage(175,0,0,$width,$width); + $img->cropImage(300,0,0,$width,$width); } else { - $img->scaleImageSquare(175); + $img->scaleImageSquare(300); } } @@ -681,7 +681,7 @@ function import_channel_photo($photo,$type,$aid,$uid) { $img = photo_factory($photo, $type); if($img->is_valid()) { - $img->scaleImageSquare(175); + $img->scaleImageSquare(300); $p = array('aid' => $aid, 'uid' => $uid, 'resource_id' => $hash, 'filename' => $filename, 'album' => t('Profile Photos'), 'photo_usage' => PHOTO_PROFILE, 'scale' => 4); diff --git a/mod/events.php b/mod/events.php index a89bbb760..02c453562 100755 --- a/mod/events.php +++ b/mod/events.php @@ -451,6 +451,7 @@ function events_content(&$a) { if($export) { header('Content-type: text/calendar'); + header('content-disposition: attachment; filename="' . t('calendar') . '-' . $channel['channel_address'] . '.ics"' ); echo ical_wrapper($r); killme(); } diff --git a/version.inc b/version.inc index 249734f42..4b4237878 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-07-19.1098 +2015-07-21.1100 diff --git a/view/tpl/field_acheckbox.tpl b/view/tpl/field_acheckbox.tpl index f96fd5fd6..e99128bbb 100755 --- a/view/tpl/field_acheckbox.tpl +++ b/view/tpl/field_acheckbox.tpl @@ -5,11 +5,16 @@ {{if $notself}} - + {{if $field.2}}{{else}}{{/if}} {{/if}} - + {{if $self || !$field.5}} + + {{/if}} + {{if $notself && $field.5}} + {{if $field.3}}{{else}}{{/if}} + {{/if}} {{if $field.5}}{{$inherited}}{{if $self}}{{if $field.7}} {{else}} {{/if}}{{/if}}{{/if}} diff --git a/view/tpl/profile_vcard.tpl b/view/tpl/profile_vcard.tpl index 9eac48c6d..bea0d894f 100755 --- a/view/tpl/profile_vcard.tpl +++ b/view/tpl/profile_vcard.tpl @@ -1,5 +1,5 @@
-
{{$profile.name}}
+
{{$profile.name}}
{{if $profile.edit}}