Merge branch 'master' of https://github.com/redmatrix/redmatrix
Conflicts: doc/to_do_code.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.
|
||||
|
|
|
@ -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]
|
||||
|
||||
|
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 910 B After Width: | Height: | Size: 910 B |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
2015-07-19.1098
|
||||
2015-07-21.1100
|
||||
|
|
|
@ -5,11 +5,16 @@
|
|||
</td>
|
||||
{{if $notself}}
|
||||
<td class="abook-them">
|
||||
<input type="checkbox" name='them_{{$field.0}}' id='them_id_{{$field.0}}' value="1" disabled="disabled" {{if $field.2}}checked="checked"{{/if}} />
|
||||
{{if $field.2}}<i class="icon-check"></i>{{else}}<i class="icon-check-empty"></i>{{/if}}
|
||||
</td>
|
||||
{{/if}}
|
||||
<td class="abook-me">
|
||||
<input type="checkbox" name='{{$field.0}}' class='abook-edit-me' id='me_id_{{$field.0}}' value="{{$field.4}}" {{if $field.3}}checked="checked"{{/if}}{{if $notself && $field.5}} disabled="disabled"{{/if}}/>
|
||||
{{if $self || !$field.5}}
|
||||
<input type="checkbox" name='{{$field.0}}' class='abook-edit-me' id='me_id_{{$field.0}}' value="{{$field.4}}" {{if $field.3}}checked="checked"{{/if}} />
|
||||
{{/if}}
|
||||
{{if $notself && $field.5}}
|
||||
{{if $field.3}}<i class="icon-check"></i>{{else}}<i class="icon-check-empty"></i>{{/if}}
|
||||
{{/if}}
|
||||
</td>
|
||||
<td>
|
||||
{{if $field.5}}<span class="permission-inherited">{{$inherited}}{{if $self}}{{if $field.7}} <i class="icon-check"></i>{{else}} <i class="icon-check-empty"></i>{{/if}}{{/if}}</span>{{/if}}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="vcard">
|
||||
<div id="profile-photo-wrapper"><img class="photo" width="175" height="175" src="{{$profile.photo}}?rev={{$profile.picdate}}" alt="{{$profile.name}}"></div>
|
||||
<div id="profile-photo-wrapper"><img class="photo" src="{{$profile.photo}}?rev={{$profile.picdate}}" alt="{{$profile.name}}"></div>
|
||||
{{if $profile.edit}}
|
||||
<div class="dropdown">
|
||||
<a class="profile-edit-side-link dropdown-toggle" data-toggle="dropdown" title="{{$profile.edit.3}}" href="#" ><i class="icon-pencil" title="{{$profile.edit.1}}" ></i></a>
|
||||
|
|