From: Friendika Date: Tue, 27 Sep 2011 08:04:54 +0000 (-0700) Subject: Merge pull request #3 from fabrixxm/master X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=25ac93f44d92b839c5012ba8cbb7ecf221658eff;hp=069a76bff4d635e65ccfd27dcf81bf3531fbfc61;p=friendica.git Merge pull request #3 from fabrixxm/master Works on UI --- diff --git a/boot.php b/boot.php index 48d52846ee..5b32e05736 100644 --- a/boot.php +++ b/boot.php @@ -5,6 +5,7 @@ require_once('include/network.php'); require_once('include/plugin.php'); require_once('include/text.php'); require_once("include/pgettext.php"); +require_once('include/nav.php'); define ( 'FRIENDIKA_VERSION', '2.3.1116' ); @@ -248,7 +249,7 @@ class App { public $timezone; public $interactive = true; public $plugins; - public $apps; + public $apps = Array(); public $identities; private $scheme; @@ -723,14 +724,16 @@ function remote_user() { if(! function_exists('notice')) { function notice($s) { $a = get_app(); + if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array(); if($a->interactive) - $_SESSION['sysmsg'] .= $s; + $_SESSION['sysmsg'][] = $s; }} if(! function_exists('info')) { function info($s) { $a = get_app(); + if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array(); if($a->interactive) - $_SESSION['sysmsg_info'] .= $s; + $_SESSION['sysmsg_info'][] = $s; }} @@ -812,8 +815,8 @@ function profile_load(&$a, $nickname, $profile = 0) { $a->page['aside'] .= profile_sidebar($a->profile, $block); - if(! $block) - $a->page['aside'] .= contact_block(); + /*if(! $block) + $a->page['aside'] .= contact_block();*/ return; }} @@ -841,132 +844,107 @@ function profile_sidebar($profile, $block = 0) { $a = get_app(); $o = ''; - $location = ''; + $location = false; $address = false; + $pdesc = true; if((! is_array($profile)) && (! count($profile))) return $o; call_hooks('profile_sidebar_enter', $profile); - $fullname = '
' . $profile['name'] . '
'; + + // don't show connect link to yourself + $connect = (($profile['uid'] != local_user()) ? t('Connect') : False); - $pdesc = '
' . $profile['pdesc'] . '
'; + // don't show connect link to authenticated visitors either - $tabs = ''; + if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid'])) + $connect = False; + + + // show edit profile to yourself + if ($profile['uid'] == local_user()) { + $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles')); + + $r = q("SELECT * FROM `profile` WHERE `uid` = %d", + local_user()); + + $profile['menu'] = array( + 'chg_photo' => t('Change profile photo'), + 'cr_new' => t('Create New Profile'), + 'entries' => array(), + ); + + if(count($r)) { - $photo = '
' . $profile['name'] . '
'; + foreach($r as $rr) { + $profile['menu']['entries'][] = array( + 'photo' => $rr['thumb'], + 'id' => $rr['id'], + 'alt' => t('Profile Image'), + 'profile_name' => $rr['profile-name'], + 'isdefault' => $rr['is-default'], + 'visibile_to_everybody' => t('visible to everybody'), + 'edit_visibility' => t('Edit visibility'), + + ); + } - // don't show connect link to yourself - $connect = (($profile['uid'] != local_user()) ? '
  • ' . t('Connect') . '
  • ' : ''); - // don't show connect link to authenticated visitors either + } + + + } + - if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid'])) - $connect = ''; + if((x($profile,'address') == 1) || (x($profile,'locality') == 1) || (x($profile,'region') == 1) || (x($profile,'postal-code') == 1) || (x($profile,'country-name') == 1)) - $address = true; - - if($address) { - $location .= '
    ' . t('Location:') . '
    '; - $location .= ((x($profile,'address') == 1) ? '
    ' . $profile['address'] . '
    ' : ''); - $location .= (((x($profile,'locality') == 1) || (x($profile,'region') == 1) || (x($profile,'postal-code') == 1)) - ? '' . $profile['locality'] . '' - . ((x($profile['locality']) == 1) ? t(', ') : '') - . '' . $profile['region'] . '' - . ' ' . $profile['postal-code'] . '' : ''); - $location .= ((x($profile,'country-name') == 1) ? ' ' . $profile['country-name'] . '' : ''); - $location .= '
    '; + $location = t('Location:'); - } + $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False); - $gender = ((x($profile,'gender') == 1) ? '
    ' . t('Gender:') . ' ' . $profile['gender'] . '
    ' : ''); + $marital = ((x($profile,'marital') == 1) ? t('Status:') : False); - $pubkey = ((x($profile,'pubkey') == 1) ? '' : ''); + $homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False); - $marital = ((x($profile,'marital') == 1) ? '
    ' . t('Status:') . ' ' . $profile['marital'] . '
    ' : ''); + if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) { + $location = $pdesc = $connect = $gender = $marital = $homepage = False; + } - $homepage = ((x($profile,'homepage') == 1) ? '
    ' . t('Homepage:') . ' ' . linkify($profile['homepage']) . '
    ' : ''); + $diaspora = array( + 'podloc' => $a->get_baseurl(), + 'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ), + 'nickname ' => $profile['nickname'], + 'fullname' => $profile['name'], + 'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg', + 'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg', + 'photo50' => $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg', + ); - if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) { - $location = $pdesc = $connect = $gender = $marital = $homepage = ''; + if (!$block){ + $contact_block = contact_block(); } - $podloc = $a->get_baseurl(); - $searchable = (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ); - $nickname = $profile['nickname']; - $photo300 = $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg'; - $photo100 = $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg'; - $photo50 = $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg'; - - $diaspora_vcard = <<< EOT - -
    -
    -
    Nickname
    -
    -$nickname -
    -
    -
    -
    Full name
    -
    -$fullname -
    -
    -
    -
    URL
    -
    -$podloc/ -
    -
    -
    -
    Photo
    -
    - -
    -
    -
    -
    Photo
    -
    - -
    -
    -
    -
    Photo
    -
    - -
    -
    -
    -
    Searchable
    -
    -$searchable -
    -
    -
    -EOT; $tpl = get_markup_template('profile_vcard.tpl'); $o .= replace_macros($tpl, array( - '$fullname' => template_escape($fullname), - '$pdesc' => template_escape($pdesc), - '$tabs' => $tabs, - '$photo' => $photo, + '$profile' => $profile, '$connect' => $connect, '$location' => template_escape($location), '$gender' => $gender, - '$pubkey' => $pubkey, - '$marital' => template_escape($marital), - '$homepage' => template_escape($homepage), - '$diaspora' => $diaspora_vcard + '$pdesc' => $pdesc, + '$marital' => $marital, + '$homepage' => $homepage, + '$diaspora' => $diaspora, + '$contact_block' => $contact_block, )); @@ -1174,3 +1152,4 @@ function load_contact_links($uid) { $a->contacts = $ret; return; }} + diff --git a/images/connect-bg.png b/images/connect-bg.png new file mode 100644 index 0000000000..0611c73e56 Binary files /dev/null and b/images/connect-bg.png differ diff --git a/images/icons/10/add.png b/images/icons/10/add.png new file mode 100644 index 0000000000..296e8e500f Binary files /dev/null and b/images/icons/10/add.png differ diff --git a/images/icons/10/delete.png b/images/icons/10/delete.png new file mode 100644 index 0000000000..e4bd859338 Binary files /dev/null and b/images/icons/10/delete.png differ diff --git a/images/icons/10/edit.png b/images/icons/10/edit.png new file mode 100644 index 0000000000..d939342a10 Binary files /dev/null and b/images/icons/10/edit.png differ diff --git a/images/icons/10/feed.png b/images/icons/10/feed.png new file mode 100644 index 0000000000..22aa5fd4b2 Binary files /dev/null and b/images/icons/10/feed.png differ diff --git a/images/icons/10/gear.png b/images/icons/10/gear.png new file mode 100644 index 0000000000..b1f2a8f521 Binary files /dev/null and b/images/icons/10/gear.png differ diff --git a/images/icons/10/group.png b/images/icons/10/group.png new file mode 100644 index 0000000000..a58d51910c Binary files /dev/null and b/images/icons/10/group.png differ diff --git a/images/icons/10/info.png b/images/icons/10/info.png new file mode 100644 index 0000000000..667c127c65 Binary files /dev/null and b/images/icons/10/info.png differ diff --git a/images/icons/10/lock.png b/images/icons/10/lock.png new file mode 100644 index 0000000000..ad8079c231 Binary files /dev/null and b/images/icons/10/lock.png differ diff --git a/images/icons/10/menu.png b/images/icons/10/menu.png new file mode 100644 index 0000000000..7dbb779d0b Binary files /dev/null and b/images/icons/10/menu.png differ diff --git a/images/icons/10/notice.png b/images/icons/10/notice.png new file mode 100644 index 0000000000..88ea4ac76a Binary files /dev/null and b/images/icons/10/notice.png differ diff --git a/images/icons/10/notify_off.png b/images/icons/10/notify_off.png new file mode 100644 index 0000000000..8ba240e1d2 Binary files /dev/null and b/images/icons/10/notify_off.png differ diff --git a/images/icons/10/notify_on.png b/images/icons/10/notify_on.png new file mode 100644 index 0000000000..d4ef715588 Binary files /dev/null and b/images/icons/10/notify_on.png differ diff --git a/images/icons/10/star.png b/images/icons/10/star.png new file mode 100644 index 0000000000..cd8518a18f Binary files /dev/null and b/images/icons/10/star.png differ diff --git a/images/icons/10/user.png b/images/icons/10/user.png new file mode 100644 index 0000000000..6c2d161e87 Binary files /dev/null and b/images/icons/10/user.png differ diff --git a/images/icons/16/add.png b/images/icons/16/add.png new file mode 100644 index 0000000000..1ff064bb30 Binary files /dev/null and b/images/icons/16/add.png differ diff --git a/images/icons/16/delete.png b/images/icons/16/delete.png new file mode 100644 index 0000000000..5323468605 Binary files /dev/null and b/images/icons/16/delete.png differ diff --git a/images/icons/16/edit.png b/images/icons/16/edit.png new file mode 100644 index 0000000000..bd845a7678 Binary files /dev/null and b/images/icons/16/edit.png differ diff --git a/images/icons/16/feed.png b/images/icons/16/feed.png new file mode 100644 index 0000000000..082e1bc731 Binary files /dev/null and b/images/icons/16/feed.png differ diff --git a/images/icons/16/gear.png b/images/icons/16/gear.png new file mode 100644 index 0000000000..86cbe1eb87 Binary files /dev/null and b/images/icons/16/gear.png differ diff --git a/images/icons/16/group.png b/images/icons/16/group.png new file mode 100644 index 0000000000..29ef69672d Binary files /dev/null and b/images/icons/16/group.png differ diff --git a/images/icons/16/info.png b/images/icons/16/info.png new file mode 100644 index 0000000000..e8e7b35ba3 Binary files /dev/null and b/images/icons/16/info.png differ diff --git a/images/icons/16/lock.png b/images/icons/16/lock.png new file mode 100644 index 0000000000..f4432bbe4e Binary files /dev/null and b/images/icons/16/lock.png differ diff --git a/images/icons/16/menu.png b/images/icons/16/menu.png new file mode 100644 index 0000000000..a6b1cac47c Binary files /dev/null and b/images/icons/16/menu.png differ diff --git a/images/icons/16/notice.png b/images/icons/16/notice.png new file mode 100644 index 0000000000..13c5c6b79e Binary files /dev/null and b/images/icons/16/notice.png differ diff --git a/images/icons/16/notify_off.png b/images/icons/16/notify_off.png new file mode 100644 index 0000000000..3031fc906b Binary files /dev/null and b/images/icons/16/notify_off.png differ diff --git a/images/icons/16/notify_on.png b/images/icons/16/notify_on.png new file mode 100644 index 0000000000..1da6245a64 Binary files /dev/null and b/images/icons/16/notify_on.png differ diff --git a/images/icons/16/star.png b/images/icons/16/star.png new file mode 100644 index 0000000000..ac620c43ce Binary files /dev/null and b/images/icons/16/star.png differ diff --git a/images/icons/16/user.png b/images/icons/16/user.png new file mode 100644 index 0000000000..95c42c5725 Binary files /dev/null and b/images/icons/16/user.png differ diff --git a/images/icons/22/add.png b/images/icons/22/add.png new file mode 100644 index 0000000000..2079e725d2 Binary files /dev/null and b/images/icons/22/add.png differ diff --git a/images/icons/22/delete.png b/images/icons/22/delete.png new file mode 100644 index 0000000000..d0f2acf138 Binary files /dev/null and b/images/icons/22/delete.png differ diff --git a/images/icons/22/edit.png b/images/icons/22/edit.png new file mode 100644 index 0000000000..ad251b8ed0 Binary files /dev/null and b/images/icons/22/edit.png differ diff --git a/images/icons/22/feed.png b/images/icons/22/feed.png new file mode 100644 index 0000000000..a0b75f11dd Binary files /dev/null and b/images/icons/22/feed.png differ diff --git a/images/icons/22/gear.png b/images/icons/22/gear.png new file mode 100644 index 0000000000..9ccf5280b4 Binary files /dev/null and b/images/icons/22/gear.png differ diff --git a/images/icons/22/group.png b/images/icons/22/group.png new file mode 100644 index 0000000000..f1360159b9 Binary files /dev/null and b/images/icons/22/group.png differ diff --git a/images/icons/22/info.png b/images/icons/22/info.png new file mode 100644 index 0000000000..18d32664d4 Binary files /dev/null and b/images/icons/22/info.png differ diff --git a/images/icons/22/lock.png b/images/icons/22/lock.png new file mode 100644 index 0000000000..92c8c49059 Binary files /dev/null and b/images/icons/22/lock.png differ diff --git a/images/icons/22/menu.png b/images/icons/22/menu.png new file mode 100644 index 0000000000..e3461da8b4 Binary files /dev/null and b/images/icons/22/menu.png differ diff --git a/images/icons/22/notice.png b/images/icons/22/notice.png new file mode 100644 index 0000000000..2b97738929 Binary files /dev/null and b/images/icons/22/notice.png differ diff --git a/images/icons/22/notify_off.png b/images/icons/22/notify_off.png new file mode 100644 index 0000000000..513687bc58 Binary files /dev/null and b/images/icons/22/notify_off.png differ diff --git a/images/icons/22/notify_on.png b/images/icons/22/notify_on.png new file mode 100644 index 0000000000..18002e15c5 Binary files /dev/null and b/images/icons/22/notify_on.png differ diff --git a/images/icons/22/star.png b/images/icons/22/star.png new file mode 100644 index 0000000000..484e247943 Binary files /dev/null and b/images/icons/22/star.png differ diff --git a/images/icons/22/user.png b/images/icons/22/user.png new file mode 100644 index 0000000000..79bb05e4e7 Binary files /dev/null and b/images/icons/22/user.png differ diff --git a/images/icons/48/add.png b/images/icons/48/add.png new file mode 100644 index 0000000000..753ac4b68d Binary files /dev/null and b/images/icons/48/add.png differ diff --git a/images/icons/48/delete.png b/images/icons/48/delete.png new file mode 100644 index 0000000000..2835638a96 Binary files /dev/null and b/images/icons/48/delete.png differ diff --git a/images/icons/48/edit.png b/images/icons/48/edit.png new file mode 100644 index 0000000000..709fbb357b Binary files /dev/null and b/images/icons/48/edit.png differ diff --git a/images/icons/48/feed.png b/images/icons/48/feed.png new file mode 100644 index 0000000000..13d88f7070 Binary files /dev/null and b/images/icons/48/feed.png differ diff --git a/images/icons/48/gear.png b/images/icons/48/gear.png new file mode 100644 index 0000000000..8bb12e96ea Binary files /dev/null and b/images/icons/48/gear.png differ diff --git a/images/icons/48/group.png b/images/icons/48/group.png new file mode 100644 index 0000000000..26238ac6ab Binary files /dev/null and b/images/icons/48/group.png differ diff --git a/images/icons/48/info.png b/images/icons/48/info.png new file mode 100644 index 0000000000..760eca5c3c Binary files /dev/null and b/images/icons/48/info.png differ diff --git a/images/icons/48/lock.png b/images/icons/48/lock.png new file mode 100644 index 0000000000..9943bb17d2 Binary files /dev/null and b/images/icons/48/lock.png differ diff --git a/images/icons/48/menu.png b/images/icons/48/menu.png new file mode 100644 index 0000000000..376e60caba Binary files /dev/null and b/images/icons/48/menu.png differ diff --git a/images/icons/48/notice.png b/images/icons/48/notice.png new file mode 100644 index 0000000000..f6fbc95c68 Binary files /dev/null and b/images/icons/48/notice.png differ diff --git a/images/icons/48/notify_off.png b/images/icons/48/notify_off.png new file mode 100644 index 0000000000..7c8cd97881 Binary files /dev/null and b/images/icons/48/notify_off.png differ diff --git a/images/icons/48/notify_on.png b/images/icons/48/notify_on.png new file mode 100644 index 0000000000..3275898c51 Binary files /dev/null and b/images/icons/48/notify_on.png differ diff --git a/images/icons/48/star.png b/images/icons/48/star.png new file mode 100644 index 0000000000..f53914efae Binary files /dev/null and b/images/icons/48/star.png differ diff --git a/images/icons/48/user.png b/images/icons/48/user.png new file mode 100644 index 0000000000..c42410cd13 Binary files /dev/null and b/images/icons/48/user.png differ diff --git a/images/icons/add.png b/images/icons/add.png new file mode 100644 index 0000000000..78497fbc95 Binary files /dev/null and b/images/icons/add.png differ diff --git a/images/icons/delete.png b/images/icons/delete.png new file mode 100644 index 0000000000..f0cae51548 Binary files /dev/null and b/images/icons/delete.png differ diff --git a/images/icons/edit.png b/images/icons/edit.png new file mode 100644 index 0000000000..aeaf835fec Binary files /dev/null and b/images/icons/edit.png differ diff --git a/images/icons/feed.png b/images/icons/feed.png new file mode 100644 index 0000000000..6894257e95 Binary files /dev/null and b/images/icons/feed.png differ diff --git a/images/icons/gear.png b/images/icons/gear.png new file mode 100644 index 0000000000..02847ef9d5 Binary files /dev/null and b/images/icons/gear.png differ diff --git a/images/icons/group.png b/images/icons/group.png new file mode 100644 index 0000000000..de0dc79014 Binary files /dev/null and b/images/icons/group.png differ diff --git a/images/icons/info.png b/images/icons/info.png new file mode 100644 index 0000000000..ea2b0ffa4f Binary files /dev/null and b/images/icons/info.png differ diff --git a/images/icons/lock.png b/images/icons/lock.png new file mode 100644 index 0000000000..7e58ead2eb Binary files /dev/null and b/images/icons/lock.png differ diff --git a/images/icons/make.sh b/images/icons/make.sh new file mode 100644 index 0000000000..3481174116 --- /dev/null +++ b/images/icons/make.sh @@ -0,0 +1,14 @@ +sizes="10 16 22 48" + +for s in $sizes +do + echo "=[ ${s}x${s} ]====" + [ -d $s ] || mkdir $s + for f in *.png + do + convert $f -resize ${s}x${s} $s/$f + echo -n "#" + done + echo +done +echo "Ok." diff --git a/images/icons/menu.png b/images/icons/menu.png new file mode 100644 index 0000000000..56afc8541a Binary files /dev/null and b/images/icons/menu.png differ diff --git a/images/icons/notice.png b/images/icons/notice.png new file mode 100644 index 0000000000..b6017c8de6 Binary files /dev/null and b/images/icons/notice.png differ diff --git a/images/icons/notify_off.png b/images/icons/notify_off.png new file mode 100644 index 0000000000..e6eac16b82 Binary files /dev/null and b/images/icons/notify_off.png differ diff --git a/images/icons/notify_on.png b/images/icons/notify_on.png new file mode 100644 index 0000000000..b9e07d24e6 Binary files /dev/null and b/images/icons/notify_on.png differ diff --git a/images/icons/star.png b/images/icons/star.png new file mode 100644 index 0000000000..4a2236c9b7 Binary files /dev/null and b/images/icons/star.png differ diff --git a/images/icons/user.png b/images/icons/user.png new file mode 100644 index 0000000000..f1132b1ae6 Binary files /dev/null and b/images/icons/user.png differ diff --git a/include/acl.js b/include/acl.js deleted file mode 100644 index ba6c6af738..0000000000 --- a/include/acl.js +++ /dev/null @@ -1,246 +0,0 @@ -function ACL(backend_url, preset){ - that = this; - - that.url = backend_url; - - that.kp_timer = null; - - if (preset==undefined) preset = []; - that.allow_cid = (preset[0] || []); - that.allow_gid = (preset[1] || []); - that.deny_cid = (preset[2] || []); - that.deny_gid = (preset[3] || []); - that.group_uids = []; - that.nw = 4; //items per row. should be calulated from #acl-list.width - - that.list_content = $("#acl-list-content"); - that.item_tpl = unescape($(".acl-list-item[rel=acl-template]").html()); - that.showall = $("#acl-showall"); - - if (preset.length==0) that.showall.addClass("selected"); - - /*events*/ - that.showall.click(that.on_showall); - $(".acl-button-show").live('click', that.on_button_show); - $(".acl-button-hide").live('click', that.on_button_hide); - $("#acl-search").keypress(that.on_search); - $("#acl-wrapper").parents("form").submit(that.on_submit); - - /* startup! */ - that.get(0,100); -} - -ACL.prototype.on_submit = function(){ - aclfileds = $("#acl-fields").html(""); - $(that.allow_gid).each(function(i,v){ - aclfileds.append(""); - }); - $(that.allow_cid).each(function(i,v){ - aclfileds.append(""); - }); - $(that.deny_gid).each(function(i,v){ - aclfileds.append(""); - }); - $(that.deny_cid).each(function(i,v){ - aclfileds.append(""); - }); -} - -ACL.prototype.search = function(){ - var srcstr = $("#acl-search").val(); - that.list_content.html(""); - that.get(0,100, srcstr); -} - -ACL.prototype.on_search = function(event){ - if (that.kp_timer) clearTimeout(that.kp_timer); - that.kp_timer = setTimeout( that.search, 1000); -} - -ACL.prototype.on_showall = function(event){ - event.preventDefault() - event.stopPropagation(); - - if (that.showall.hasClass("selected")){ - return false; - } - that.showall.addClass("selected"); - - that.allow_cid = []; - that.allow_gid = []; - that.deny_cid = []; - that.deny_gid = []; - - that.update_view(); - - return false; -} - -ACL.prototype.on_button_show = function(event){ - event.preventDefault() - event.stopImmediatePropagation() - event.stopPropagation(); - - /*that.showall.removeClass("selected"); - $(this).siblings(".acl-button-hide").removeClass("selected"); - $(this).toggleClass("selected");*/ - - that.set_allow($(this).parent().attr('id')); - - return false; -} -ACL.prototype.on_button_hide = function(event){ - event.preventDefault() - event.stopImmediatePropagation() - event.stopPropagation(); - - /*that.showall.removeClass("selected"); - $(this).siblings(".acl-button-show").removeClass("selected"); - $(this).toggleClass("selected");*/ - - that.set_deny($(this).parent().attr('id')); - - return false; -} - -ACL.prototype.set_allow = function(itemid){ - type = itemid[0]; - id = parseInt(itemid.substr(1)); - switch(type){ - case "g": - if (that.allow_gid.indexOf(id)<0){ - that.allow_gid.push(id) - }else { - that.allow_gid.remove(id); - } - if (that.deny_gid.indexOf(id)>=0) that.deny_gid.remove(id); - break; - case "c": - if (that.allow_cid.indexOf(id)<0){ - that.allow_cid.push(id) - } else { - that.allow_cid.remove(id); - } - if (that.deny_cid.indexOf(id)>=0) that.deny_cid.remove(id); - break; - } - that.update_view(); -} - -ACL.prototype.set_deny = function(itemid){ - type = itemid[0]; - id = parseInt(itemid.substr(1)); - switch(type){ - case "g": - if (that.deny_gid.indexOf(id)<0){ - that.deny_gid.push(id) - } else { - that.deny_gid.remove(id); - } - if (that.allow_gid.indexOf(id)>=0) that.allow_gid.remove(id); - break; - case "c": - if (that.deny_cid.indexOf(id)<0){ - that.deny_cid.push(id) - } else { - that.deny_cid.remove(id); - } - if (that.allow_cid.indexOf(id)>=0) that.allow_cid.remove(id); - break; - } - that.update_view(); -} - -ACL.prototype.update_view = function(){ - if (that.allow_gid.length==0 && that.allow_cid.length==0 && - that.deny_gid.length==0 && that.deny_cid.length==0){ - that.showall.addClass("selected"); - /* jot acl */ - $('#jot-perms-icon').removeClass('lock').addClass('unlock'); - $('#jot-public').show(); - $('.profile-jot-net input').attr('disabled', false); - if(typeof editor != 'undefined' && editor != false) { - $('#profile-jot-desc').html(ispublic); - } - - } else { - that.showall.removeClass("selected"); - /* jot acl */ - $('#jot-perms-icon').removeClass('unlock').addClass('lock'); - $('#jot-public').hide(); - $('.profile-jot-net input').attr('disabled', 'disabled'); - $('#profile-jot-desc').html(' '); - } - - $("#acl-list-content .acl-list-item").each(function(){ - itemid = $(this).attr('id'); - type = itemid[0]; - id = parseInt(itemid.substr(1)); - - btshow = $(this).children(".acl-button-show").removeClass("selected"); - bthide = $(this).children(".acl-button-hide").removeClass("selected"); - - switch(type){ - case "g": - var uclass = ""; - if (that.allow_gid.indexOf(id)>=0){ - btshow.addClass("selected"); - bthide.removeClass("selected"); - uclass="groupshow"; - } - if (that.deny_gid.indexOf(id)>=0){ - btshow.removeClass("selected"); - bthide.addClass("selected"); - uclass="grouphide"; - } - - $(that.group_uids[id]).each(function(i,v){ - $("#c"+v).removeClass("groupshow grouphide").addClass(uclass); - }); - - break; - case "c": - if (that.allow_cid.indexOf(id)>=0){ - btshow.addClass("selected"); - bthide.removeClass("selected"); - } - if (that.deny_cid.indexOf(id)>=0){ - btshow.removeClass("selected"); - bthide.addClass("selected"); - } - } - - }); - -} - - -ACL.prototype.get = function(start,count, search){ - var postdata = { - start:start, - count:count, - search:search, - } - - $.ajax({ - type:'POST', - url: that.url, - data: postdata, - dataType: 'json', - success:that.populate - }); -} - -ACL.prototype.populate = function(data){ - var height = Math.ceil(data.tot / that.nw) * 42; - that.list_content.height(height); - $(data.items).each(function(){ - html = "
    "+that.item_tpl+"
    "; - html = html.format( this.photo, this.name, this.type, this.id, '', this.network ); - if (this.uids!=undefined) that.group_uids[this.id] = this.uids; - //console.log(html); - that.list_content.append(html); - }); - that.update_view(); -} - diff --git a/include/ajaxupload.js b/include/ajaxupload.js deleted file mode 100644 index 67c4a56fb7..0000000000 --- a/include/ajaxupload.js +++ /dev/null @@ -1,695 +0,0 @@ -/** - * AJAX Upload ( http://valums.com/ajax-upload/ ) - * Copyright (c) Andris Valums - * Licensed under the MIT license ( http://valums.com/mit-license/ ) - * Thanks to Gary Haran, David Mark, Corey Burns and others for contributions. - */ - -(function () { - /* global window */ - /* jslint browser: true, devel: true, undef: true, nomen: true, bitwise: true, regexp: true, newcap: true, immed: true */ - - /** - * Wrapper for FireBug's console.log - */ - function log(){ - if (typeof(console) != 'undefined' && typeof(console.log) == 'function'){ - Array.prototype.unshift.call(arguments, '[Ajax Upload]'); - console.log( Array.prototype.join.call(arguments, ' ')); - } - } - - /** - * Attaches event to a dom element. - * @param {Element} el - * @param type event name - * @param fn callback This refers to the passed element - */ - function addEvent(el, type, fn){ - if (el.addEventListener) { - el.addEventListener(type, fn, false); - } else if (el.attachEvent) { - el.attachEvent('on' + type, function(){ - fn.call(el); - }); - } else { - throw new Error('not supported or DOM not loaded'); - } - } - - /** - * Attaches resize event to a window, limiting - * number of event fired. Fires only when encounteres - * delay of 100 after series of events. - * - * Some browsers fire event multiple times when resizing - * http://www.quirksmode.org/dom/events/resize.html - * - * @param fn callback This refers to the passed element - */ - function addResizeEvent(fn){ - var timeout; - - addEvent(window, 'resize', function(){ - if (timeout){ - clearTimeout(timeout); - } - timeout = setTimeout(fn, 100); - }); - } - - // Needs more testing, will be rewriten for next version - // getOffset function copied from jQuery lib (http://jquery.com/) - if (document.documentElement.getBoundingClientRect){ - // Get Offset using getBoundingClientRect - // http://ejohn.org/blog/getboundingclientrect-is-awesome/ - var getOffset = function(el){ - var box = el.getBoundingClientRect(); - var doc = el.ownerDocument; - var body = doc.body; - var docElem = doc.documentElement; // for ie - var clientTop = docElem.clientTop || body.clientTop || 0; - var clientLeft = docElem.clientLeft || body.clientLeft || 0; - - // In Internet Explorer 7 getBoundingClientRect property is treated as physical, - // while others are logical. Make all logical, like in IE8. - var zoom = 1; - if (body.getBoundingClientRect) { - var bound = body.getBoundingClientRect(); - zoom = (bound.right - bound.left) / body.clientWidth; - } - - if (zoom > 1) { - clientTop = 0; - clientLeft = 0; - } - - var top = box.top / zoom + (window.pageYOffset || docElem && docElem.scrollTop / zoom || body.scrollTop / zoom) - clientTop, left = box.left / zoom + (window.pageXOffset || docElem && docElem.scrollLeft / zoom || body.scrollLeft / zoom) - clientLeft; - - return { - top: top, - left: left - }; - }; - } else { - // Get offset adding all offsets - var getOffset = function(el){ - var top = 0, left = 0; - do { - top += el.offsetTop || 0; - left += el.offsetLeft || 0; - el = el.offsetParent; - } while (el); - - return { - left: left, - top: top - }; - }; - } - - /** - * Returns left, top, right and bottom properties describing the border-box, - * in pixels, with the top-left relative to the body - * @param {Element} el - * @return {Object} Contains left, top, right,bottom - */ - function getBox(el){ - var left, right, top, bottom; - var offset = getOffset(el); - left = offset.left; - top = offset.top; - - right = left + el.offsetWidth; - bottom = top + el.offsetHeight; - - return { - left: left, - right: right, - top: top, - bottom: bottom - }; - } - - /** - * Helper that takes object literal - * and add all properties to element.style - * @param {Element} el - * @param {Object} styles - */ - function addStyles(el, styles){ - for (var name in styles) { - if (styles.hasOwnProperty(name)) { - el.style[name] = styles[name]; - } - } - } - - /** - * Function places an absolutely positioned - * element on top of the specified element - * copying position and dimentions. - * @param {Element} from - * @param {Element} to - */ - function copyLayout(from, to){ - var box = getBox(from); - - addStyles(to, { - position: 'absolute', - left : box.left + 'px', - top : box.top + 'px', - width : from.offsetWidth + 'px', - height : from.offsetHeight + 'px' - }); - to.title = from.title; - - } - - /** - * Creates and returns element from html chunk - * Uses innerHTML to create an element - */ - var toElement = (function(){ - var div = document.createElement('div'); - return function(html){ - div.innerHTML = html; - var el = div.firstChild; - return div.removeChild(el); - }; - })(); - - /** - * Function generates unique id - * @return unique id - */ - var getUID = (function(){ - var id = 0; - return function(){ - return 'ValumsAjaxUpload' + id++; - }; - })(); - - /** - * Get file name from path - * @param {String} file path to file - * @return filename - */ - function fileFromPath(file){ - return file.replace(/.*(\/|\\)/, ""); - } - - /** - * Get file extension lowercase - * @param {String} file name - * @return file extenstion - */ - function getExt(file){ - return (-1 !== file.indexOf('.')) ? file.replace(/.*[.]/, '') : ''; - } - - function hasClass(el, name){ - var re = new RegExp('\\b' + name + '\\b'); - return re.test(el.className); - } - function addClass(el, name){ - if ( ! hasClass(el, name)){ - el.className += ' ' + name; - } - } - function removeClass(el, name){ - var re = new RegExp('\\b' + name + '\\b'); - el.className = el.className.replace(re, ''); - } - - function removeNode(el){ - el.parentNode.removeChild(el); - } - - /** - * Easy styling and uploading - * @constructor - * @param button An element you want convert to - * upload button. Tested dimentions up to 500x500px - * @param {Object} options See defaults below. - */ - window.AjaxUpload = function(button, options){ - this._settings = { - // Location of the server-side upload script - action: 'upload.php', - // File upload name - name: 'userfile', - // Additional data to send - data: {}, - // Submit file as soon as it's selected - autoSubmit: true, - // The type of data that you're expecting back from the server. - // html and xml are detected automatically. - // Only useful when you are using json data as a response. - // Set to "json" in that case. - responseType: false, - // Class applied to button when mouse is hovered - hoverClass: 'hover', - // Class applied to button when button is focused - focusClass: 'focus', - // Class applied to button when AU is disabled - disabledClass: 'disabled', - // When user selects a file, useful with autoSubmit disabled - // You can return false to cancel upload - onChange: function(file, extension){ - }, - // Callback to fire before file is uploaded - // You can return false to cancel upload - onSubmit: function(file, extension){ - }, - // Fired when file upload is completed - // WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE! - onComplete: function(file, response){ - } - }; - - // Merge the users options with our defaults - for (var i in options) { - if (options.hasOwnProperty(i)){ - this._settings[i] = options[i]; - } - } - - // button isn't necessary a dom element - if (button.jquery){ - // jQuery object was passed - button = button[0]; - } else if (typeof button == "string") { - if (/^#.*/.test(button)){ - // If jQuery user passes #elementId don't break it - button = button.slice(1); - } - - button = document.getElementById(button); - } - - if ( ! button || button.nodeType !== 1){ - throw new Error("Please make sure that you're passing a valid element"); - } - - if ( button.nodeName.toUpperCase() == 'A'){ - // disable link - addEvent(button, 'click', function(e){ - if (e && e.preventDefault){ - e.preventDefault(); - } else if (window.event){ - window.event.returnValue = false; - } - }); - } - - // DOM element - this._button = button; - // DOM element - this._input = null; - // If disabled clicking on button won't do anything - this._disabled = false; - - // if the button was disabled before refresh if will remain - // disabled in FireFox, let's fix it - this.enable(); - - this._rerouteClicks(); - }; - - // assigning methods to our class - AjaxUpload.prototype = { - setData: function(data){ - this._settings.data = data; - }, - disable: function(){ - addClass(this._button, this._settings.disabledClass); - this._disabled = true; - - var nodeName = this._button.nodeName.toUpperCase(); - if (nodeName == 'INPUT' || nodeName == 'BUTTON'){ - this._button.setAttribute('disabled', 'disabled'); - } - - // hide input - if (this._input){ - // We use visibility instead of display to fix problem with Safari 4 - // The problem is that the value of input doesn't change if it - // has display none when user selects a file - this._input.parentNode.style.visibility = 'hidden'; - } - }, - enable: function(){ - removeClass(this._button, this._settings.disabledClass); - this._button.removeAttribute('disabled'); - this._disabled = false; - - }, - /** - * Creates invisible file input - * that will hover above the button - *
    - */ - _createInput: function(){ - var self = this; - - var input = document.createElement("input"); - input.setAttribute('type', 'file'); - input.setAttribute('name', this._settings.name); - - addStyles(input, { - 'position' : 'absolute', - // in Opera only 'browse' button - // is clickable and it is located at - // the right side of the input - 'right' : 0, - 'margin' : 0, - 'padding' : 0, - 'fontSize' : '480px', - // in Firefox if font-family is set to - // 'inherit' the input doesn't work - 'fontFamily' : 'sans-serif', - 'cursor' : 'pointer' - }); - - var div = document.createElement("div"); - addStyles(div, { - 'display' : 'block', - 'position' : 'absolute', - 'overflow' : 'hidden', - 'margin' : 0, - 'padding' : 0, - 'opacity' : 0, - // Make sure browse button is in the right side - // in Internet Explorer - 'direction' : 'ltr', - //Max zIndex supported by Opera 9.0-9.2 - 'zIndex': 2147483583, - 'cursor' : 'pointer' - - }); - - // Make sure that element opacity exists. - // Otherwise use IE filter - if ( div.style.opacity !== "0") { - if (typeof(div.filters) == 'undefined'){ - throw new Error('Opacity not supported by the browser'); - } - div.style.filter = "alpha(opacity=0)"; - } - - addEvent(input, 'change', function(){ - - if ( ! input || input.value === ''){ - return; - } - - // Get filename from input, required - // as some browsers have path instead of it - var file = fileFromPath(input.value); - - if (false === self._settings.onChange.call(self, file, getExt(file))){ - self._clearInput(); - return; - } - - // Submit form when value is changed - if (self._settings.autoSubmit) { - self.submit(); - } - }); - - addEvent(input, 'mouseover', function(){ - addClass(self._button, self._settings.hoverClass); - }); - - addEvent(input, 'mouseout', function(){ - removeClass(self._button, self._settings.hoverClass); - removeClass(self._button, self._settings.focusClass); - - // We use visibility instead of display to fix problem with Safari 4 - // The problem is that the value of input doesn't change if it - // has display none when user selects a file - input.parentNode.style.visibility = 'hidden'; - - }); - - addEvent(input, 'focus', function(){ - addClass(self._button, self._settings.focusClass); - }); - - addEvent(input, 'blur', function(){ - removeClass(self._button, self._settings.focusClass); - }); - - div.appendChild(input); - document.body.appendChild(div); - - this._input = input; - }, - _clearInput : function(){ - if (!this._input){ - return; - } - - // this._input.value = ''; Doesn't work in IE6 - removeNode(this._input.parentNode); - this._input = null; - this._createInput(); - - removeClass(this._button, this._settings.hoverClass); - removeClass(this._button, this._settings.focusClass); - }, - /** - * Function makes sure that when user clicks upload button, - * the this._input is clicked instead - */ - _rerouteClicks: function(){ - var self = this; - - // IE will later display 'access denied' error - // if you use using self._input.click() - // other browsers just ignore click() - - addEvent(self._button, 'mouseover', function(){ - if (self._disabled){ - return; - } - - if ( ! self._input){ - self._createInput(); - } - - var div = self._input.parentNode; - copyLayout(self._button, div); - div.style.visibility = 'visible'; - - }); - - - // commented because we now hide input on mouseleave - /** - * When the window is resized the elements - * can be misaligned if button position depends - * on window size - */ - //addResizeEvent(function(){ - // if (self._input){ - // copyLayout(self._button, self._input.parentNode); - // } - //}); - - }, - /** - * Creates iframe with unique name - * @return {Element} iframe - */ - _createIframe: function(){ - // We can't use getTime, because it sometimes return - // same value in safari :( - var id = getUID(); - - // We can't use following code as the name attribute - // won't be properly registered in IE6, and new window - // on form submit will open - // var iframe = document.createElement('iframe'); - // iframe.setAttribute('name', id); - - var iframe = toElement('