]> git.mxchange.org Git - friendica.git/commitdiff
file as widget and basic filing implementation for duepuntozero,slackr
authorfriendica <info@friendica.com>
Wed, 14 Mar 2012 01:13:03 +0000 (18:13 -0700)
committerfriendica <info@friendica.com>
Wed, 14 Mar 2012 01:13:03 +0000 (18:13 -0700)
much more work needed - this is just for test/evaluation currently

include/contact_widgets.php
include/conversation.php
include/text.php
mod/filer.php [new file with mode: 0755]
mod/network.php
view/fileas_widget.tpl [new file with mode: 0755]
view/jot-header.tpl
view/theme/duepuntozero/file.gif [new file with mode: 0644]
view/theme/duepuntozero/style.css
view/theme/duepuntozero/wall_item.tpl
view/theme/greenzero/file.gif [new file with mode: 0644]

index caa0572d20f79aff5a3bf2deb669364836ac10cb..605a3eb78e64c46bcf4691774a8f1a0a8995fbc5 100755 (executable)
@@ -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,
+
+       ));
+}
 
index 4b2ca316bae8867d6190165339735fb6e1a32ff4..a420e9923abc52555b9305c2942326f5dd5c9764 100755 (executable)
@@ -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') 
        ));
index 2663bdebaa7bd41947f83987e6bd9a1427ee4fd4..c44b4d1789bef1fb05697ad66f5c649d88ef9e52 100644 (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)
                        );
diff --git a/mod/filer.php b/mod/filer.php
new file mode 100755 (executable)
index 0000000..a9e2135
--- /dev/null
@@ -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();
+}
index 7e7a958419910561a52307f604c128451dfb4ae8..4f58fc4fbc8fb487f3d652e3d1c381e229cb741c 100755 (executable)
@@ -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'] : ''));
 
 }
 
diff --git a/view/fileas_widget.tpl b/view/fileas_widget.tpl
new file mode 100755 (executable)
index 0000000..54fba74
--- /dev/null
@@ -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>
index d6b172b6af8c28e75af10cbf84ee2f2483cf3ac0..88df73494fef3c54d71d9726fa0b6de1bd5a9ea0 100755 (executable)
@@ -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();
diff --git a/view/theme/duepuntozero/file.gif b/view/theme/duepuntozero/file.gif
new file mode 100644 (file)
index 0000000..7885b99
Binary files /dev/null and b/view/theme/duepuntozero/file.gif differ
index acd97eb941d5bac00f3f450f69a886c7cd6bf2f9..10ddb00909df6c754bfd9d9cda46475a47c21b1b 100755 (executable)
@@ -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 {
index 51e36b6f4f946a9a78f77e49b0e22ecaf7b3f4f9..2c88fc598ef914d6c64fed26b81eee8f834b09db 100755 (executable)
@@ -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" >
diff --git a/view/theme/greenzero/file.gif b/view/theme/greenzero/file.gif
new file mode 100644 (file)
index 0000000..e388a13
Binary files /dev/null and b/view/theme/greenzero/file.gif differ