file as widget and basic filing implementation for duepuntozero,slackr

much more work needed - this is just for test/evaluation currently
This commit is contained in:
friendica 2012-03-13 18:13:03 -07:00
parent 8a789a33d1
commit be48fff157
11 changed files with 101 additions and 4 deletions

View file

@ -75,4 +75,33 @@ function networks_widget($baseurl,$selected = '') {
));
}
function fileas_widget($baseurl,$selected = '') {
$a = get_app();
if(! local_user())
return '';
$saved = get_pconfig(local_user(),'system','filetags');
if(! strlen($saved))
return;
$matches = false;
$terms = array();
$cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
$unescaped = file_tag_decode($mtch[1]);
$terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : ''));
}
}
return replace_macros(get_markup_template('fileas_widget.tpl'),array(
'$title' => t('File Selections'),
'$desc' => '',
'$sel_all' => (($selected == '') ? 'selected' : ''),
'$all' => t('Everything'),
'$terms' => $terms,
'$base' => $baseurl,
));
}

View file

@ -572,6 +572,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'classundo' => (($item['starred']) ? "" : "hidden"),
'starred' => t('starred'),
'tagger' => t("add tag"),
'filer' => t("file as"),
'classtagger' => "",
);
}
@ -874,6 +875,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
'$vidurl' => t("Please enter a video link/URL:"),
'$audurl' => t("Please enter an audio link/URL:"),
'$term' => t('Tag term:'),
'$fileas' => t('File as:'),
'$whereareu' => t('Where are you right now?'),
'$title' => t('Enter a title for this item')
));

View file

@ -1294,7 +1294,7 @@ function file_tag_save_file($uid,$item,$file) {
if(count($r)) {
if(! stristr($r[0]['file'],'[' . file_tag_encode($file) . ']'))
q("update item set file = '%s' where id = %d and uid = %d limit 1",
dbesc($r[0]['file'] . '[' . $file_tag_encode($file) . ']'),
dbesc($r[0]['file'] . '[' . file_tag_encode($file) . ']'),
intval($item),
intval($uid)
);

23
mod/filer.php Executable file
View file

@ -0,0 +1,23 @@
<?php
require_once('include/security.php');
require_once('include/bbcode.php');
require_once('include/items.php');
function filer_content(&$a) {
if(! local_user()) {
killme();
}
$term = notags(trim($_GET['term']));
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
logger('filer: tag ' . $term . ' item ' . $item_id);
if($item_id && strlen($term))
file_tag_save_file(local_user(),$item_id,$term);
killme();
}

View file

@ -46,6 +46,7 @@ function network_init(&$a) {
$a->page['aside'] .= group_side('network','network',true,$group_id);
$a->page['aside'] .= networks_widget($a->get_baseurl() . '/network',(x($_GET, 'nets') ? $_GET['nets'] : ''));
$a->page['aside'] .= saved_searches($search);
$a->page['aside'] .= fileas_widget($a->get_baseurl() . '/network',(x($_GET, 'file') ? $_GET['file'] : ''));
}

12
view/fileas_widget.tpl Executable file
View file

@ -0,0 +1,12 @@
<div id="fileas-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<ul class="fileas-ul">
<li class="tool"><a href="$base" class="fileas-link fileas-all{{ if $sel_all }} fileas-selected{{ endif }}">$all</a></li>
{{ for $terms as $term }}
<li class="tool"><a href="$base?f=&file=$term.name" class="fileas-link{{ if $term.selected }} fileas-selected{{ endif }}">$term.name</a></li>
{{ endfor }}
</ul>
</div>

View file

@ -262,6 +262,18 @@ function enableOnUser(){
}
}
function itemFiler(id) {
reply = prompt("$fileas");
if(reply && reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('filer/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
}
}
function jotClearLocation() {
$('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide();

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

View file

@ -309,7 +309,7 @@ div.wall-item-content-wrapper.shiny {
margin-bottom: 10px;
}
.group-selected, .nets-selected {
.group-selected, .nets-selected, .fileas-selected {
padding: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
@ -1024,6 +1024,10 @@ input#dfrn-url {
float: left;
}
.filer-item {
margin-left: 10px;
float: left;
}
.wall-item-links-wrapper {
float: left;
@ -1864,11 +1868,11 @@ a.mail-list-link {
margin-top: 10px;
}
.nets-ul {
.nets-ul, .fileas-ul {
list-style-type: none;
}
.nets-ul li {
.nets-ul li, .fileas-ul li {
margin-top: 10px;
}
@ -1879,6 +1883,14 @@ a.mail-list-link {
margin-left: 42px;
}
.fileas-link {
margin-left: 24px;
}
.fileas-all {
margin-left: 0px;
}
#search-save {
margin-left: 5px;
}
@ -2902,6 +2914,11 @@ aside input[type='text'] {
.tagged { background-position: -48px -48px; }
.filer-icon {
display: block; width: 16px; height: 16px;
background-image: url('file.gif');
}
.icon.dim { opacity: 0.3;filter:alpha(opacity=30); }
.attachtype {

View file

@ -56,6 +56,7 @@
{{ if $item.star }}
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
<a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.star.filer"></a>
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B