Browse Source

Introducing Frost

pull/406/head
Zach Prezkuta 8 years ago
parent
commit
8126e8ea47
90 changed files with 10105 additions and 0 deletions
  1. +9
    -0
      view/theme/frost/TODO
  2. +42
    -0
      view/theme/frost/admin_aside.tpl
  3. BIN
      view/theme/frost/border.jpg
  4. +74
    -0
      view/theme/frost/comment_item.tpl
  5. +27
    -0
      view/theme/frost/contact_template.tpl
  6. +28
    -0
      view/theme/frost/contacts-template.tpl
  7. +27
    -0
      view/theme/frost/conversation.tpl
  8. +42
    -0
      view/theme/frost/default.php
  9. BIN
      view/theme/frost/editicons.png
  10. +0
    -0
      view/theme/frost/experimental
  11. +6
    -0
      view/theme/frost/field_input.tpl
  12. +6
    -0
      view/theme/frost/field_openid.tpl
  13. +6
    -0
      view/theme/frost/field_password.tpl
  14. BIN
      view/theme/frost/file.gif
  15. BIN
      view/theme/frost/friendika-16.png
  16. BIN
      view/theme/frost/head.jpg
  17. +105
    -0
      view/theme/frost/head.tpl
  18. BIN
      view/theme/frost/images/ajax-loader.gif
  19. BIN
      view/theme/frost/images/approve-16.png
  20. BIN
      view/theme/frost/images/approve.png
  21. BIN
      view/theme/frost/images/boldB-serif-16.png
  22. BIN
      view/theme/frost/images/camera-16.png
  23. BIN
      view/theme/frost/images/camera.png
  24. BIN
      view/theme/frost/images/code-16.png
  25. BIN
      view/theme/frost/images/code.png
  26. BIN
      view/theme/frost/images/contacts.png
  27. BIN
      view/theme/frost/images/disapprove-16.png
  28. BIN
      view/theme/frost/images/disapprove.png
  29. BIN
      view/theme/frost/images/drop-16.png
  30. BIN
      view/theme/frost/images/drop-red.png
  31. BIN
      view/theme/frost/images/drop.png
  32. BIN
      view/theme/frost/images/folder-16.png
  33. BIN
      view/theme/frost/images/folder.png
  34. BIN
      view/theme/frost/images/globe.png
  35. BIN
      view/theme/frost/images/italicI-serif-16.png
  36. BIN
      view/theme/frost/images/link-16.png
  37. BIN
      view/theme/frost/images/link.png
  38. BIN
      view/theme/frost/images/lock-24.png
  39. BIN
      view/theme/frost/images/lock.png
  40. BIN
      view/theme/frost/images/menu.png
  41. BIN
      view/theme/frost/images/message.png
  42. BIN
      view/theme/frost/images/network.png
  43. BIN
      view/theme/frost/images/notifications.png
  44. BIN
      view/theme/frost/images/paperclip-24.png
  45. BIN
      view/theme/frost/images/paperclip.png
  46. BIN
      view/theme/frost/images/pencil-16.png
  47. BIN
      view/theme/frost/images/pencil.png
  48. BIN
      view/theme/frost/images/quote-16.png
  49. BIN
      view/theme/frost/images/quote.png
  50. BIN
      view/theme/frost/images/recycle-16.png
  51. BIN
      view/theme/frost/images/recycle.png
  52. BIN
      view/theme/frost/images/remote-link-16.png
  53. BIN
      view/theme/frost/images/remote-link.png
  54. BIN
      view/theme/frost/images/speaker.png
  55. BIN
      view/theme/frost/images/star-16.png
  56. BIN
      view/theme/frost/images/star-yellow-16.png
  57. BIN
      view/theme/frost/images/star-yellow.png
  58. BIN
      view/theme/frost/images/star.png
  59. BIN
      view/theme/frost/images/tag-16.png
  60. BIN
      view/theme/frost/images/tag.png
  61. BIN
      view/theme/frost/images/underlineU-serif-16.png
  62. BIN
      view/theme/frost/images/unlock-24.png
  63. BIN
      view/theme/frost/images/unlock.png
  64. BIN
      view/theme/frost/images/video-16.png
  65. BIN
      view/theme/frost/images/video.png
  66. +317
    -0
      view/theme/frost/jot-header.tpl
  67. +656
    -0
      view/theme/frost/js/main.js
  68. +184
    -0
      view/theme/frost/js/theme.js
  69. +10
    -0
      view/theme/frost/lang_selector.tpl
  70. BIN
      view/theme/frost/lock.cur
  71. BIN
      view/theme/frost/login-bg.gif
  72. +108
    -0
      view/theme/frost/login-style.css
  73. +42
    -0
      view/theme/frost/login.tpl
  74. +21
    -0
      view/theme/frost/lostpass.tpl
  75. +61
    -0
      view/theme/frost/moderated_comment.tpl
  76. +131
    -0
      view/theme/frost/nav.tpl
  77. +4
    -0
      view/theme/frost/oembed_video.tpl
  78. BIN
      view/theme/frost/photo-menu.jpg
  79. +58
    -0
      view/theme/frost/photo_edit.tpl
  80. +42
    -0
      view/theme/frost/photo_view.tpl
  81. +55
    -0
      view/theme/frost/photos_upload.tpl
  82. +322
    -0
      view/theme/frost/profile_edit.tpl
  83. +51
    -0
      view/theme/frost/profile_vcard.tpl
  84. +39
    -0
      view/theme/frost/prv_message.tpl
  85. +78
    -0
      view/theme/frost/register.tpl
  86. BIN
      view/theme/frost/screenshot.jpg
  87. +3794
    -0
      view/theme/frost/style.css
  88. +3658
    -0
      view/theme/frost/style.css.orig
  89. +23
    -0
      view/theme/frost/theme.php
  90. +79
    -0
      view/theme/frost/wall_item.tpl

+ 9
- 0
view/theme/frost/TODO View File

@ -0,0 +1,9 @@
Home page edit pencil
Preview spacing
Photo album display
Check TinyMCE optimization
"Profiles" page is wonky
Settings, admin, photos upload don't look beautiful

+ 42
- 0
view/theme/frost/admin_aside.tpl View File

@ -0,0 +1,42 @@
<script>
// update pending count //
$(function(){
$("nav").bind('nav-update', function(e,data){
var elm = $('#pending-update');
var register = $(data).find('register').text();
if (register=="0") { reigster=""; elm.hide();} else { elm.show(); }
elm.html(register);
});
});
</script>
<h4><a href="$admurl">$admtxt</a></h4>
<ul class='admin linklist'>
<li class='admin button $admin.site.2'><a href='$admin.site.0'>$admin.site.1</a></li>
<li class='admin button $admin.users.2'><a href='$admin.users.0'>$admin.users.1</a><span id='pending-update' title='$h_pending'></span></li>
<li class='admin button $admin.plugins.2'><a href='$admin.plugins.0'>$admin.plugins.1</a></li>
<li class='admin button $admin.themes.2'><a href='$admin.themes.0'>$admin.themes.1</a></li>
<li class='admin button $admin.dbsync.2'><a href='$admin.dbsync.0'>$admin.dbsync.1</a></li>
</ul>
{{ if $admin.update }}
<ul class='admin linklist'>
<li class='admin button $admin.update.2'><a href='$admin.update.0'>$admin.update.1</a></li>
<li class='admin button $admin.update.2'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
</ul>
{{ endif }}
{{ if $admin.plugins_admin }}<h4>$plugadmtxt</h4>{{ endif }}
<ul class='admin linklist'>
{{ for $admin.plugins_admin as $l }}
<li class='admin button $l.2'><a href='$l.0'>$l.1</a></li>
{{ endfor }}
</ul>
<h4>$logtxt</h4>
<ul class='admin linklist'>
<li class='admin button $admin.logs.2'><a href='$admin.logs.0'>$admin.logs.1</a></li>
</ul>

BIN
view/theme/frost/border.jpg View File

Before After
Width: 1  |  Height: 112  |  Size: 342 B

+ 74
- 0
view/theme/frost/comment_item.tpl View File

@ -0,0 +1,74 @@
<script>
$(document).ready( function () {
$(document).mouseup(function(e) {
var container = $("#comment-edit-wrapper-$id");
if( container.has(e.target).length === 0) {
commentClose(document.getElementById('comment-edit-text-$id'),$id);
cmtBbClose($id);
}
});
});
</script>
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
<form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="parent" value="$parent" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="jsreload" value="$jsreload" />
<input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
<div class="comment-edit-photo" id="comment-edit-photo-$id" >
<a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>
</div>
<div class="comment-edit-photo-end"></div>
<ul class="comment-edit-bb-$id">
<li><a class="editicon boldbb shadow"
style="cursor: pointer;" title="$edbold"
onclick="insertFormatting('$comment','b', $id);"></a></li>
<li><a class="editicon italicbb shadow"
style="cursor: pointer;" title="$editalic"
onclick="insertFormatting('$comment','i', $id);"></a></li>
<li><a class="editicon underlinebb shadow"
style="cursor: pointer;" title="$eduline"
onclick="insertFormatting('$comment','u', $id);"></a></li>
<li><a class="editicon quotebb shadow"
style="cursor: pointer;" title="$edquote"
onclick="insertFormatting('$comment','quote', $id);"></a></li>
<li><a class="editicon codebb shadow"
style="cursor: pointer;" title="$edcode"
onclick="insertFormatting('$comment','code', $id);"></a></li>
<li><a class="editicon imagebb shadow"
style="cursor: pointer;" title="$edimg"
onclick="insertFormatting('$comment','img', $id);"></a></li>
<li><a class="editicon urlbb shadow"
style="cursor: pointer;" title="$edurl"
onclick="insertFormatting('$comment','url', $id);"></a></li>
<li><a class="editicon videobb shadow"
style="cursor: pointer;" title="$edvideo"
onclick="insertFormatting('$comment','video', $id);"></a></li>
</ul>
<div class="comment-edit-bb-end"></div>
<!-- <textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);cmtBbOpen($id);" onBlur="commentClose(this,$id);cmtBbClose($id);" >$comment</textarea>-->
<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);cmtBbOpen($id);" >$comment</textarea>
{{ if $qcomment }}
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
<option value=""></option>
{{ for $qcomment as $qc }}
<option value="$qc">$qc</option>
{{ endfor }}
</select>
{{ endif }}
<div class="comment-edit-text-end"></div>
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
<input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
<span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
<div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
</div>
<div class="comment-edit-end"></div>
</form>
</div>

+ 27
- 0
view/theme/frost/contact_template.tpl View File

@ -0,0 +1,27 @@
<div class="contact-entry-wrapper" id="contact-entry-wrapper-$contact.id" >
<div class="contact-entry-photo-wrapper" >
<div class="contact-entry-photo mframe" id="contact-entry-photo-$contact.id"
onmouseover="if (typeof t$contact.id != 'undefined') clearTimeout(t$contact.id); openMenu('contact-photo-menu-button-$contact.id')"
onmouseout="t$contact.id=setTimeout('closeMenu(\'contact-photo-menu-button-$contact.id\'); closeMenu(\'contact-photo-menu-$contact.id\');',200)" >
<a href="$contact.url" title="$contact.img_hover" /><img src="$contact.thumb" $contact.sparkle alt="$contact.name" /></a>
{{ if $contact.photo_menu }}
<span onclick="openClose('contact-photo-menu-$contact.id');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-$contact.id">menu</span>
<div class="contact-photo-menu" id="contact-photo-menu-$contact.id">
<ul>
$contact.photo_menu
</ul>
</div>
{{ endif }}
</div>
</div>
<div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-$contact.id" >$contact.name</div><br />
{{ if $contact.alt_text }}<div class="contact-entry-details" id="contact-entry-rel-$contact.id" >$contact.alt_text</div>{{ endif }}
<div class="contact-entry-network" id="contact-entry-network-$contact.id" >$contact.network</div>
<div class="contact-entry-end" ></div>
</div>

+ 28
- 0
view/theme/frost/contacts-template.tpl View File

@ -0,0 +1,28 @@
<h1>$header{{ if $total }} ($total){{ endif }}</h1>
{{ if $finding }}<h4>$finding</h4>{{ endif }}
<div id="contacts-search-wrapper">
<form id="contacts-search-form" action="$cmd" method="get" >
<span class="contacts-search-desc">$desc</span>
<input type="text" name="search" id="contacts-search" class="search-input" onfocus="this.select();" value="$search" />
<input type="submit" name="submit" id="contacts-search-submit" value="$submit" />
</form>
</div>
<div id="contacts-search-end"></div>
$tabs
<div id="contacts-display-wrapper">
{{ for $contacts as $contact }}
{{ inc contact_template.tpl }}{{ endinc }}
{{ endfor }}
</div>
<div id="contact-edit-end"></div>
$paginate

+ 27
- 0
view/theme/frost/conversation.tpl View File

@ -0,0 +1,27 @@
{{ for $threads as $thread }}
<div id="tread-wrapper-$thread.id" class="tread-wrapper">
{{ for $thread.items as $item }}
{{if $item.comment_firstcollapsed}}
<div class="hide-comments-outer">
<span id="hide-comments-total-$thread.id" class="hide-comments-total">$thread.num_comments</span> <span id="hide-comments-$thread.id" class="hide-comments fakelink" onclick="showHideComments($thread.id);">$thread.hide_text</span>
</div>
<div id="collapsed-comments-$thread.id" class="collapsed-comments" style="display: none;">
{{endif}}
{{if $item.comment_lastcollapsed}}</div>{{endif}}
{{ inc $item.template }}{{ endinc }}
{{ endfor }}
</div>
{{ endfor }}
<div id="conversation-end"></div>
<!--{{ if $dropping }}
<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
<div id="item-delete-selected-icon" class="icon drophide" title="$dropping" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
<div id="item-delete-selected-desc" >$dropping</div>
</div>
<div id="item-delete-selected-end"></div>
{{ endif }}-->

+ 42
- 0
view/theme/frost/default.php View File

@ -0,0 +1,42 @@
<!DOCTYPE html >
<html>
<head>
<title><?php if(x($page,'title')) echo $page['title'] ?></title>
<script>var baseurl="<?php echo $a->get_baseurl() ?>";</script>
<?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
</head>
<body>
<?php if( $a->module === 'home' ) { ?>
<center>
<div class="login-button">
<a href="login" class="login-button-link"><img class="login-button-image" src="/images/friendika-1600.png" title="Click to log in"></a>
</div>
</center>
<?php } elseif ( $a->module === 'login' || $a->module === 'register' || $a->module === 'lostpass' ) {
?>
<div class='section-wrapper'>
<section><?php if(x($page,'content')) echo $page['content']; ?>
</section>
</div>
<?php } else {
if(x($page,'nav')) echo $page['nav']; ?>
<div class='main-container'>
<!--<div class='main-content-loading'><img src="/view/theme/frost/images/ajax-loader.gif" alt="Please wait..."></div>-->
<div class='main-content-container'>
<aside><?php if(x($page,'aside')) echo $page['aside']; ?></aside>
<div class='section-wrapper'>
<section><?php if(x($page,'content')) echo $page['content']; ?>
<div id="page-footer"></div>
</section>
</div>
<right_aside><?php if(x($page,'right_aside')) echo $page['right_aside']; ?></right_aside>
<footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
</div>
</div>
<?php } ?>
</body>
</html>

BIN
view/theme/frost/editicons.png View File

Before After
Width: 87  |  Height: 109  |  Size: 6.2 KiB

+ 0
- 0
view/theme/frost/experimental View File


+ 6
- 0
view/theme/frost/field_input.tpl View File

@ -0,0 +1,6 @@
<div class='field input' id='wrapper_$field.0'>
<label for='id_$field.0'>$field.1</label>
<input name='$field.0' id='id_$field.0' value="$field.2">
<span class='field_help'>$field.3</span>
</div>

+ 6
- 0
view/theme/frost/field_openid.tpl View File

@ -0,0 +1,6 @@
<div class='field input openid' id='wrapper_$field.0'>
<label for='id_$field.0'>$field.1</label>
<input name='$field.0' id='id_$field.0' value="$field.2">
<span class='field_help'>$field.3</span>
</div>

+ 6
- 0
view/theme/frost/field_password.tpl View File

@ -0,0 +1,6 @@
<div class='field password' id='wrapper_$field.0'>
<label for='id_$field.0'>$field.1</label>
<input type='password' name='$field.0' id='id_$field.0' value="$field.2">
<span class='field_help'>$field.3</span>
</div>

BIN
view/theme/frost/file.gif View File

Before After
Width: 16  |  Height: 16  |  Size: 615 B

BIN
view/theme/frost/friendika-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 699 B

BIN
view/theme/frost/head.jpg View File

Before After
Width: 5  |  Height: 124  |  Size: 383 B

+ 105
- 0
view/theme/frost/head.tpl View File

@ -0,0 +1,105 @@
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<base href="$baseurl/" />
<meta name="generator" content="$generator" />
<link rel="stylesheet" href="$baseurl/library/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<!--<link rel="stylesheet" href="$baseurl/library/tiptip/tipTip.css" type="text/css" media="screen" />-->
<link rel="stylesheet" href="$baseurl/library/jgrowl/jquery.jgrowl.css" type="text/css" media="screen" />
<link rel="stylesheet" type="text/css" href="$stylesheet" media="all" />
<link rel="shortcut icon" href="$baseurl/images/friendica-32.png" />
<link rel="search"
href="$baseurl/opensearch"
type="application/opensearchdescription+xml"
title="Search in Friendica" />
<!--[if IE]>
<script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js" ></script>
<script type="text/javascript">
tinyMCE.init({ mode : "none"});
</script>
<script type="text/javascript" src="$baseurl/js/jquery.js" ></script>
<script type="text/javascript" src="$baseurl/js/jquery.textinputs.js" ></script>
<script type="text/javascript" src="$baseurl/js/fk.autocomplete.js" ></script>
<script type="text/javascript" src="$baseurl/library/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<!--<script type="text/javascript" src="$baseurl/library/tiptip/jquery.tipTip.minified.js"></script>-->
<script type="text/javascript" src="$baseurl/library/jgrowl/jquery.jgrowl_minimized.js"></script>
<script type="text/javascript" src="$baseurl/js/acl.js" ></script>
<script type="text/javascript" src="$baseurl/js/webtoolkit.base64.js" ></script>
<script type="text/javascript" src="$baseurl/view/theme/frost/js/main.js" ></script>
<script type="text/javascript" src="$baseurl/view/theme/frost/js/theme.js"></script>
<script>
var updateInterval = $update_interval;
var localUser = {{ if $local_user }}$local_user{{ else }}false{{ endif }};
function confirmDelete() { return confirm("$delitem"); }
function commentOpen(obj,id) {
if(obj.value == '$comment') {
obj.value = '';
$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
$("#mod-cmnt-wrap-" + id).show();
openMenu("comment-edit-submit-wrapper-" + id);
}
}
function commentClose(obj,id) {
if(obj.value == '') {
obj.value = '$comment';
$("#comment-edit-text-" + id).removeClass("comment-edit-text-full");
$("#comment-edit-text-" + id).addClass("comment-edit-text-empty");
$("#mod-cmnt-wrap-" + id).hide();
closeMenu("comment-edit-submit-wrapper-" + id);
}
}
function commentInsert(obj,id) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == '$comment') {
tmpStr = '';
$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
openMenu("comment-edit-submit-wrapper-" + id);
}
var ins = $(obj).html();
ins = ins.replace('&lt;','<');
ins = ins.replace('&gt;','>');
ins = ins.replace('&amp;','&');
ins = ins.replace('&quot;','"');
$("#comment-edit-text-" + id).val(tmpStr + ins);
}
function qCommentInsert(obj,id) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == '$comment') {
tmpStr = '';
$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
openMenu("comment-edit-submit-wrapper-" + id);
}
var ins = $(obj).val();
ins = ins.replace('&lt;','<');
ins = ins.replace('&gt;','>');
ins = ins.replace('&amp;','&');
ins = ins.replace('&quot;','"');
$("#comment-edit-text-" + id).val(tmpStr + ins);
$(obj).val('');
}
function showHideComments(id) {
if( $('#collapsed-comments-' + id).is(':visible')) {
$('#collapsed-comments-' + id).hide();
$('#hide-comments-' + id).html('$showmore');
}
else {
$('#collapsed-comments-' + id).show();
$('#hide-comments-' + id).html('$showfewer');
}
}
</script>

BIN
view/theme/frost/images/ajax-loader.gif View File

Before After
Width: 32  |  Height: 32  |  Size: 4.1 KiB

BIN
view/theme/frost/images/approve-16.png View File

Before After
Width: 15  |  Height: 16  |  Size: 263 B

BIN
view/theme/frost/images/approve.png View File

Before After
Width: 31  |  Height: 33  |  Size: 475 B

BIN
view/theme/frost/images/boldB-serif-16.png View File

Before After
Width: 15  |  Height: 16  |  Size: 320 B

BIN
view/theme/frost/images/camera-16.png View File

Before After
Width: 16  |  Height: 12  |  Size: 274 B

BIN
view/theme/frost/images/camera.png View File

Before After
Width: 33  |  Height: 25  |  Size: 530 B

BIN
view/theme/frost/images/code-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 258 B

BIN
view/theme/frost/images/code.png View File

Before After
Width: 24  |  Height: 24  |  Size: 376 B

BIN
view/theme/frost/images/contacts.png View File

Before After
Width: 32  |  Height: 32  |  Size: 813 B

BIN
view/theme/frost/images/disapprove-16.png View File

Before After
Width: 15  |  Height: 16  |  Size: 276 B

BIN
view/theme/frost/images/disapprove.png View File

Before After
Width: 31  |  Height: 33  |  Size: 480 B

BIN
view/theme/frost/images/drop-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 199 B

BIN
view/theme/frost/images/drop-red.png View File

Before After
Width: 33  |  Height: 33  |  Size: 321 B

BIN
view/theme/frost/images/drop.png View File

Before After
Width: 33  |  Height: 33  |  Size: 305 B

BIN
view/theme/frost/images/folder-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 139 B

BIN
view/theme/frost/images/folder.png View File

Before After
Width: 33  |  Height: 33  |  Size: 219 B

BIN
view/theme/frost/images/globe.png View File

Before After
Width: 33  |  Height: 33  |  Size: 1.0 KiB

BIN
view/theme/frost/images/italicI-serif-16.png View File

Before After
Width: 9  |  Height: 16  |  Size: 229 B

BIN
view/theme/frost/images/link-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 232 B

BIN
view/theme/frost/images/link.png View File

Before After
Width: 33  |  Height: 33  |  Size: 384 B

BIN
view/theme/frost/images/lock-24.png View File

Before After
Width: 16  |  Height: 24  |  Size: 301 B

BIN
view/theme/frost/images/lock.png View File

Before After
Width: 33  |  Height: 49  |  Size: 520 B

BIN
view/theme/frost/images/menu.png View File

Before After
Width: 32  |  Height: 32  |  Size: 1019 B

BIN
view/theme/frost/images/message.png View File

Before After
Width: 32  |  Height: 32  |  Size: 708 B

BIN
view/theme/frost/images/network.png View File

Before After
Width: 32  |  Height: 32  |  Size: 770 B

BIN
view/theme/frost/images/notifications.png View File

Before After
Width: 32  |  Height: 32  |  Size: 923 B

BIN
view/theme/frost/images/paperclip-24.png View File

Before After
Width: 24  |  Height: 24  |  Size: 566 B

BIN
view/theme/frost/images/paperclip.png View File

Before After
Width: 33  |  Height: 33  |  Size: 821 B

BIN
view/theme/frost/images/pencil-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 232 B

BIN
view/theme/frost/images/pencil.png View File

Before After
Width: 33  |  Height: 33  |  Size: 402 B

BIN
view/theme/frost/images/quote-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 233 B

BIN
view/theme/frost/images/quote.png View File

Before After
Width: 24  |  Height: 24  |  Size: 312 B

BIN
view/theme/frost/images/recycle-16.png View File

Before After
Width: 16  |  Height: 15  |  Size: 364 B

BIN
view/theme/frost/images/recycle.png View File

Before After
Width: 33  |  Height: 32  |  Size: 795 B

BIN
view/theme/frost/images/remote-link-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 304 B

BIN
view/theme/frost/images/remote-link.png View File

Before After
Width: 33  |  Height: 33  |  Size: 534 B

BIN
view/theme/frost/images/speaker.png View File

Before After
Width: 33  |  Height: 33  |  Size: 648 B

BIN
view/theme/frost/images/star-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 293 B

BIN
view/theme/frost/images/star-yellow-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 372 B

BIN
view/theme/frost/images/star-yellow.png View File

Before After
Width: 33  |  Height: 33  |  Size: 633 B

BIN
view/theme/frost/images/star.png View File

Before After
Width: 33  |  Height: 33  |  Size: 515 B

BIN
view/theme/frost/images/tag-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 210 B

BIN
view/theme/frost/images/tag.png View File

Before After
Width: 33  |  Height: 33  |  Size: 291 B

BIN
view/theme/frost/images/underlineU-serif-16.png View File

Before After
Width: 14  |  Height: 16  |  Size: 267 B

BIN
view/theme/frost/images/unlock-24.png View File

Before After
Width: 14  |  Height: 24  |  Size: 295 B

BIN
view/theme/frost/images/unlock.png View File

Before After
Width: 33  |  Height: 55  |  Size: 572 B

BIN
view/theme/frost/images/video-16.png View File

Before After
Width: 16  |  Height: 16  |  Size: 170 B

BIN
view/theme/frost/images/video.png View File

Before After
Width: 33  |  Height: 33  |  Size: 259 B

+ 317
- 0
view/theme/frost/jot-header.tpl View File

@ -0,0 +1,317 @@
<script language="javascript" type="text/javascript">
var editor=false;
var textlen = 0;
var plaintext = '$editselect';
function initEditor(cb){
if (editor==false){
$("#profile-jot-text-loading").show();
if(plaintext == 'none') {
$("#profile-jot-text-loading").hide();
$("#profile-jot-text").css({ 'height': 200, 'color': '#000' });
$("#profile-jot-text").contact_autocomplete(baseurl+"/acl");
editor = true;
$("a#jot-perms-icon").fancybox({
'transitionIn' : 'elastic',
'transitionOut' : 'elastic'
});
$(".jothidden").show();
if (typeof cb!="undefined") cb();
return;
}
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: $editselect,
auto_focus: "profile-jot-text",
plugins : "bbcode,paste,autoresize, inlinepopups",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code",
gecko_spellcheck : true,
paste_text_sticky : true,
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
theme_advanced_path : false,
file_browser_callback : "fcFileBrowser",
setup : function(ed) {
cPopup = null;
ed.onKeyDown.add(function(ed,e) {
if(cPopup !== null)
cPopup.onkey(e);
});
ed.onKeyUp.add(function(ed, e) {
var txt = tinyMCE.activeEditor.getContent();
match = txt.match(/@([^ \n]+)$/);
if(match!==null) {
if(cPopup === null) {
cPopup = new ACPopup(this,baseurl+"/acl");
}
if(cPopup.ready && match[1]!==cPopup.searchText) cPopup.search(match[1]);
if(! cPopup.ready) cPopup = null;
}
else {
if(cPopup !== null) { cPopup.close(); cPopup = null; }
}
textlen = txt.length;
if(textlen != 0 && $('#jot-perms-icon').is('.unlock')) {
$('#profile-jot-desc').html(ispublic);
}
else {
$('#profile-jot-desc').html('&nbsp;');
}
//Character count
if(textlen <= 140) {
$('#character-counter').removeClass('red');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('grey');
}
if((textlen > 140) && (textlen <= 420)) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('red');
$('#character-counter').addClass('orange');
}
if(textlen > 420) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('red');
}
$('#character-counter').text(textlen);
});
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
$("#profile-jot-text-loading").hide();
$(".jothidden").show();
if (typeof cb!="undefined") cb();
});
}
});
editor = true;
// setup acl popup
$("a#jot-perms-icon").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none'
});
} else {
if (typeof cb!="undefined") cb();
}
}
function enableOnUser(){
if (editor) return;
$(this).val("");
initEditor();
}
</script>
<script type="text/javascript" src="$baseurl/js/ajaxupload.js" ></script>
<script>
var ispublic = '$ispublic';
$(document).ready(function() {
/* enable tinymce on focus and click */
$("#profile-jot-text").focus(enableOnUser);
$("#profile-jot-text").click(enableOnUser);
var uploader = new window.AjaxUpload(
'wall-image-upload',
{ action: 'wall_upload/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
addeditortext(response);
$('#profile-rotator').hide();
}
}
);
var file_uploader = new window.AjaxUpload(
'wall-file-upload',
{ action: 'wall_attach/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
addeditortext(response);
$('#profile-rotator').hide();
}
}
);
});
function deleteCheckedItems() {
var checkedstr = '';
$('.item-select').each( function() {
if($(this).is(':checked')) {
if(checkedstr.length != 0) {
checkedstr = checkedstr + ',' + $(this).val();
}
else {
checkedstr = $(this).val();
}
}
});
$.post('item', { dropitems: checkedstr }, function(data) {
window.location.reload();
});
}
function jotGetLink() {
reply = prompt("$linkurl");
if(reply && reply.length) {
reply = bin2hex(reply);
$('#profile-rotator').show();
$.get('parse_url?binurl=' + reply, function(data) {
addeditortext(data);
$('#profile-rotator').hide();
});
}
}
function jotVideoURL() {
reply = prompt("$vidurl");
if(reply && reply.length) {
addeditortext('[video]' + reply + '[/video]');
}
}
function jotAudioURL() {
reply = prompt("$audurl");
if(reply && reply.length) {
addeditortext('[audio]' + reply + '[/audio]');
}
}
function jotGetLocation() {
reply = prompt("$whereareu", $('#jot-location').val());
if(reply && reply.length) {
$('#jot-location').val(reply);
}
}
function jotShare(id) {
if ($('#jot-popup').length != 0) $('#jot-popup').show();
$('#like-rotator-' + id).show();
$.get('share/' + id, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
$('#like-rotator-' + id).hide();
$(window).scrollTop(0);
});
});
}
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
if(linkFound)
event.preventDefault();
}
function linkdrop(event) {
var reply = event.dataTransfer.getData("text/uri-list");
event.target.textContent = reply;
event.preventDefault();
if(reply && reply.length) {
reply = bin2hex(reply);
$('#profile-rotator').show();
$.get('parse_url?binurl=' + reply, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
$('#profile-rotator').hide();
});
});
}
}
function itemTag(id) {
reply = prompt("$term");
if(reply && reply.length) {
reply = reply.replace('#','');
if(reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('tagger/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
}
}
}
function itemFiler(id) {
var bordercolor = $("input").css("border-color");
$.get('filer/', function(data){
$.fancybox(data);
$("#id_term").keypress(function(){
$(this).css("border-color",bordercolor);
})
$("#select_term").change(function(){
$("#id_term").css("border-color",bordercolor);
})
$("#filer_save").click(function(e){
e.preventDefault();
reply = $("#id_term").val();
if(reply && reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('filer/' + id + '?term=' + reply, NavUpdate);
/* if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);*/
liking = 1;
$.fancybox.close();
} else {
$("#id_term").css("border-color","#FF0000");
}
return false;
});
});
}
function jotClearLocation() {
$('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide();
}
function addeditortext(data) {
if(plaintext == 'none') {
var currentText = $("#profile-jot-text").val();
$("#profile-jot-text").val(currentText + data);
}
else
tinyMCE.execCommand('mceInsertRawHTML',false,data);
}
$geotag
</script>

+ 656
- 0
view/theme/frost/js/main.js View File

@ -0,0 +1,656 @@
function openClose(theID) {
if(document.getElementById(theID).style.display == "block") {
document.getElementById(theID).style.display = "none"
}
else {
document.getElementById(theID).style.display = "block"
}
}
function openMenu(theID) {
document.getElementById(theID).style.display = "block"
}
function closeMenu(theID) {
document.getElementById(theID).style.display = "none"
}
var src = null;
var prev = null;
var livetime = null;
var msie = false;
var stopped = false;
var totStopped = false;
var timer = null;
var pr = 0;
var liking = 0;
var in_progress = false;
var langSelect = false;
var commentBusy = false;
var last_popup_menu = null;
var last_popup_button = null;
$(function() {
$.ajaxSetup({cache: false});
msie = $.browser.msie ;
/* setup tooltips *//*
$("a,.tt").each(function(){
var e = $(this);
var pos="bottom";
if (e.hasClass("tttop")) pos="top";
if (e.hasClass("ttbottom")) pos="bottom";
if (e.hasClass("ttleft")) pos="left";
if (e.hasClass("ttright")) pos="right";
e.tipTip({defaultPosition: pos, edgeOffset: 8});
});*/
/* setup onoff widgets */
$(".onoff input").each(function(){
val = $(this).val();
id = $(this).attr("id");
$("#"+id+"_onoff ."+ (val==0?"on":"off")).addClass("hidden");
});
$(".onoff > a").click(function(event){
event.preventDefault();
var input = $(this).siblings("input");
var val = 1-input.val();
var id = input.attr("id");
$("#"+id+"_onoff ."+ (val==0?"on":"off")).addClass("hidden");
$("#"+id+"_onoff ."+ (val==1?"on":"off")).removeClass("hidden");
input.val(val);
//console.log(id);
});
/* setup field_richtext */
setupFieldRichtext();
/* popup menus */
function close_last_popup_menu(e) {
if( last_popup_menu ) {
if( '#' + last_popup_menu.attr('id') !== $(e.target).attr('rel')) {
last_popup_menu.hide();
last_popup_button.removeClass("selected");
last_popup_menu = null;
last_popup_button = null;
}
}
}
$('a[rel^=#]').click(function(e){
close_last_popup_menu(e);
menu = $( $(this).attr('rel') );
e.preventDefault();
e.stopPropagation();
if (menu.attr('popup')=="false") return false;
$(this).parent().toggleClass("selected");
menu.slideToggle('fast');
if (menu.css("display") == "none") {
last_popup_menu = null;
last_popup_button = null;
} else {
last_popup_menu = menu;
last_popup_button = $(this).parent();
}
return false;
});
$('html').click(function(e) {
close_last_popup_menu(e);
});
// fancyboxes
$("a.popupbox").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none'
});
/* notifications template */
var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html());
var notifications_all = unescape($('<div>').append( $("#nav-notifications-see-all").clone() ).html()); //outerHtml hack
var notifications_mark = unescape($('<div>').append( $("#nav-notifications-mark-all").clone() ).html()); //outerHtml hack
var notifications_empty = unescape($("#nav-notifications-menu").html());
/* nav update event */
$('nav').bind('nav-update', function(e,data){;
var invalid = $(data).find('invalid').text();
if(invalid == 1) { window.location.href=window.location.href }
var net = $(data).find('net').text();
if(net == 0) { net = ''; $('#net-update').removeClass('show') } else { $('#net-update').addClass('show') }
$('#net-update').html(net);
var home = $(data).find('home').text();
if(home == 0) { home = ''; $('#home-update').removeClass('show') } else { $('#home-update').addClass('show') }
$('#home-update').html(home);
var intro = $(data).find('intro').text();
if(intro == 0) { intro = ''; $('#intro-update').removeClass('show') } else { $('#intro-update').addClass('show') }
$('#intro-update').html(intro);
var mail = $(data).find('mail').text();
if(mail == 0) { mail = ''; $('#mail-update').removeClass('show') } else { $('#mail-update').addClass('show') }
$('#mail-update').html(mail);
var intro = $(data).find('intro').text();
if(intro == 0) { intro = ''; $('#intro-update-li').removeClass('show') } else { $('#intro-update-li').addClass('show') }
$('#intro-update-li').html(intro);
var mail = $(data).find('mail').text();
if(mail == 0) { mail = ''; $('#mail-update-li').removeClass('show') } else { $('#mail-update-li').addClass('show') }
$('#mail-update-li').html(mail);
var eNotif = $(data).find('notif')
if (eNotif.children("note").length==0){
$("#nav-notifications-menu").html(notifications_empty);
} else {
nnm = $("#nav-notifications-menu");
nnm.html(notifications_all + notifications_mark);
//nnm.attr('popup','true');
eNotif.children("note").each(function(){
e = $(this);
text = e.text().format("<span class='contactname'>"+e.attr('name')+"</span>");
html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'), e.attr('seen'));
nnm.append(html);
});
}
notif = eNotif.attr('count');
if (notif>0){
$("#nav-notifications-linkmenu").addClass("on");
} else {
$("#nav-notifications-linkmenu").removeClass("on");
}
if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
$('#notify-update').html(notif);
var eSysmsg = $(data).find('sysmsgs');
eSysmsg.children("notice").each(function(){
text = $(this).text();
$.jGrowl(text, { sticky: true, theme: 'notice' });
});
eSysmsg.children("info").each(function(){
text = $(this).text();
$.jGrowl(text, { sticky: false, theme: 'info', life: 1500 });
});
});
NavUpdate();
// Allow folks to stop the ajax page updates with the pause/break key
$(document).keydown(function(event) {
if(event.keyCode == '8') {
var target = event.target || event.srcElement;
if (!/input|textarea/i.test(target.nodeName)) {
return false;
}
}
if(event.keyCode == '19' || (event.ctrlKey && event.which == '32')) {
event.preventDefault();
if(stopped == false) {
stopped = true;
if (event.ctrlKey) {
totStopped = true;
}
$('#pause').html('<img src="images/pause.gif" alt="pause" style="border: 1px solid black;" />');
} else {
unpause();
}
} else {
if (!totStopped) {
unpause();
}
}
});
});
function NavUpdate() {
if(! stopped) {
var pingCmd = 'ping' + ((localUser != 0) ? '?f=&uid=' + localUser : '');
$.get(pingCmd,function(data) {
$(data).find('result').each(function() {
// send nav-update event
$('nav').trigger('nav-update', this);
// start live update
if($('#live-network').length) { src = 'network'; liveUpdate(); }
if($('#live-profile').length) { src = 'profile'; liveUpdate(); }
if($('#live-community').length) { src = 'community'; liveUpdate(); }
if($('#live-notes').length) { src = 'notes'; liveUpdate(); }
if($('#live-display').length) {
if(liking) {
liking = 0;
window.location.href=window.location.href
}
}
if($('#live-photos').length) {
if(liking) {
liking = 0;
window.location.href=window.location.href
}
}
});
}) ;
}
timer = setTimeout(NavUpdate,updateInterval);
}
function liveUpdate() {
if((src == null) || (stopped) || (! profile_uid)) { $('.like-rotator').hide(); return; }
if(($('.comment-edit-text-full').length) || (in_progress)) {
if(livetime) {
clearTimeout(livetime);
}
livetime = setTimeout(liveUpdate, 10000);
return;
}
if(livetime != null)
livetime = null;
prev = 'live-' + src;
in_progress = true;
var udargs = ((netargs.length) ? '/' + netargs : '');
var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0);
$.get(update_url,function(data) {
in_progress = false;
// $('.collapsed-comments',data).each(function() {
// var ident = $(this).attr('id');
// var is_hidden = $('#' + ident).is(':hidden');
// if($('#' + ident).length) {
// $('#' + ident).replaceWith($(this));
// if(is_hidden)
// $('#' + ident).hide();
// }
//});
// add a new thread
$('.tread-wrapper',data).each(function() {
var ident = $(this).attr('id');
if($('#' + ident).length == 0 && profile_page == 1) {
$('img',this).each(function() {
$(this).attr('src',$(this).attr('dst'));
});
$('#' + prev).after($(this));
}
else {
$('img',this).each(function() {
$(this).attr('src',$(this).attr('dst'));
});
$('#' + ident).replaceWith($(this));
}
prev = ident;
});
// reset vars for inserting individual items
/*prev = 'live-' + src;
$('.wall-item-outside-wrapper',data).each(function() {
var ident = $(this).attr('id');
if($('#' + ident).length == 0 && prev != 'live-' + src) {
$('img',this).each(function() {
$(this).attr('src',$(this).attr('dst'));
});
$('#' + prev).after($(this));
}
else {
$('#' + ident + ' ' + '.wall-item-ago').replaceWith($(this).find('.wall-item-ago'));
if($('#' + ident + ' ' + '.comment-edit-text-empty').length)
$('#' + ident + ' ' + '.wall-item-comment-wrapper').replaceWith($(this).find('.wall-item-comment-wrapper'));
$('#' + ident + ' ' + '.hide-comments-total').replaceWith($(this).find('.hide-comments-total'));
$('#' + ident + ' ' + '.wall-item-like').replaceWith($(this).find('.wall-item-like'));
$('#' + ident + ' ' + '.wall-item-dislike').replaceWith($(this).find('.wall-item-dislike'));
$('#' + ident + ' ' + '.my-comment-photo').each(function() {
$(this).attr('src',$(this).attr('dst'));
});
}
prev = ident;
});*/
$('.like-rotator').hide();
if(commentBusy) {
commentBusy = false;
$('body').css('cursor', 'auto');
}
/* autocomplete @nicknames */
$(".comment-edit-form textarea").contact_autocomplete(baseurl+"/acl");
});
}
function imgbright(node) {
$(node).removeClass("drophide").addClass("drop");
}
function imgdull(node) {
$(node).removeClass("drop").addClass("drophide");
}
// Since our ajax calls are asynchronous, we will give a few
// seconds for the first ajax call (setting like/dislike), then
// run the updater to pick up any changes and display on the page.
// The updater will turn any rotators off when it's done.
// This function will have returned long before any of these
// events have completed and therefore there won't be any
// visible feedback that anything changed without all this
// trickery. This still could cause confusion if the "like" ajax call
// is delayed and NavUpdate runs before it completes.
function dolike(ident,verb) {
unpause();
$('#like-rotator-' + ident.toString()).show();
$.get('like/' + ident.toString() + '?verb=' + verb, NavUpdate );
// if(timer) clearTimeout(timer);
// timer = setTimeout(NavUpdate,3000);
liking = 1;
}
function dostar(ident) {
ident = ident.toString();
// $('#like-rotator-' + ident).show();
$.get('starred/' + ident, function(data) {
if(data.match(/1/)) {
$('#starred-' + ident).addClass('starred');
$('#starred-' + ident).removeClass('unstarred');
$('#star-' + ident).addClass('hidden');
$('#unstar-' + ident).removeClass('hidden');
}
else {
$('#starred-' + ident).addClass('unstarred');
$('#starred-' + ident).removeClass('starred');
$('#star-' + ident).removeClass('hidden');
$('#unstar-' + ident).addClass('hidden');
}
// $('#like-rotator-' + ident).hide();
});
}
function getPosition(e) {
var cursor = {x:0, y:0};
if ( e.pageX || e.pageY ) {
cursor.x = e.pageX;
cursor.y = e.pageY;
}
else {
if( e.clientX || e.clientY ) {
cursor.x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
cursor.y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
}
else {
if( e.x || e.y ) {
cursor.x = e.x;
cursor.y = e.y;
}
}
}
return cursor;
}
var lockvisible = false;
function lockview(event,id) {
event = event || window.event;
cursor = getPosition(event);
if(lockvisible) {
lockviewhide();
}
else {
lockvisible = true;
$.get('lockview/' + id, function(data) {
$('#panel').html(data);
$('#panel').css({ 'left': cursor.x + 5 , 'top': cursor.y + 5});
$('#panel').show();
});
}
}
function lockviewhide() {
lockvisible = false;
$('#panel').hide();
}
function post_comment(id) {
unpause();
commentBusy = true;
$('body').css('cursor', 'wait');
$("#comment-preview-inp-" + id).val("0");
$.post(
"item",
$("#comment-edit-form-" + id).serialize(),
function(data) {
if(data.success) {
$("#comment-edit-wrapper-" + id).hide();
$("#comment-edit-text-" + id).val('');
var tarea = document.getElementById("comment-edit-text-" + id);
if(tarea)
commentClose(tarea,id);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,10);
}
if(data.reload) {
window.location.href=data.reload;
}
},
"json"
);
return false;
}
function preview_comment(id) {
$("#comment-preview-inp-" + id).val("1");
$("#comment-edit-preview-" + id).show();
$.post(
"item",
$("#comment-edit-form-" + id).serialize(),
function(data) {
if(data.preview) {
$("#comment-edit-preview-" + id).html(data.preview);
$("#comment-edit-preview-" + id + " a").click(function() { return false; });
}
},
"json"
);
return true;
}
function preview_post() {
$("#jot-preview").val("1");
$("#jot-preview-content").show();
tinyMCE.triggerSave();
$.post(
"item",
$("#profile-jot-form").serialize(),
function(data) {
if(data.preview) {
$("#jot-preview-content").html(data.preview);
$("#jot-preview-content" + " a").click(function() { return false; });
}
},
"json"
);
$("#jot-preview").val("0");
return true;
}
function unpause() {
// unpause auto reloads if they are currently stopped
totStopped = false;
stopped = false;
$('#pause').html('');
}
function bin2hex(s){
// Converts the binary representation of data to hex
//
// version: 812.316
// discuss at: http://phpjs.org/functions/bin2hex
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfixed by: Onno Marsman
// + bugfixed by: Linuxworld
// * example 1: bin2hex('Kev');
// * returns 1: '4b6576'
// * example 2: bin2hex(String.fromCharCode(0x00));
// * returns 2: '00'
var v,i, f = 0, a = [];
s += '';
f = s.length;
for (i = 0; i<f; i++) {
a[i] = s.charCodeAt(i).toString(16).replace(/^([\da-f])$/,"0$1");
}
return a.join('');
}
function groupChangeMember(gid, cid, sec_token) {
$('body .fakelink').css('cursor', 'wait');
$.get('group/' + gid + '/' + cid + "?t=" + sec_token, function(data) {
$('#group-update-wrapper').html(data);
$('body .fakelink').css('cursor', 'auto');
});
}
function profChangeMember(gid,cid) {
$('body .fakelink').css('cursor', 'wait');
$.get('profperm/' + gid + '/' + cid, function(data) {
$('#prof-update-wrapper').html(data);
$('body .fakelink').css('cursor', 'auto');
});
}
function contactgroupChangeMember(gid,cid) {
$('body').css('cursor', 'wait');
$.get('contactgroup/' + gid + '/' + cid, function(data) {
$('body').css('cursor', 'auto');
});
}
function checkboxhighlight(box) {
if($(box).is(':checked')) {
$(box).addClass('checkeditem');
}
else {
$(box).removeClass('checkeditem');
}
}
function notifyMarkAll() {
$.get('notify/mark/all', function(data) {
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,1000);
});
}
// code from http://www.tinymce.com/wiki.php/How-to_implement_a_custom_file_browser
function fcFileBrowser (field_name, url, type, win) {
/* TODO: If you work with sessions in PHP and your client doesn't accept cookies you might need to carry
the session name and session ID in the request string (can look like this: "?PHPSESSID=88p0n70s9dsknra96qhuk6etm5").
These lines of code extract the necessary parameters and add them back to the filebrowser URL again. */
var cmsURL = baseurl+"/fbrowser/"+type+"/";
tinyMCE.activeEditor.windowManager.open({
file : cmsURL,
title : 'File Browser',
width : 420, // Your dimensions may differ - toy around with them!
height : 400,
resizable : "yes",
inline : "yes", // This parameter only has an effect if you use the inlinepopups plugin!
close_previous : "no"
}, {
window : win,
input : field_name
});
return false;
}
function setupFieldRichtext(){
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: "fieldRichtext",
plugins : "bbcode,paste, inlinepopups",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code",
paste_text_sticky : true,
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: baseurl+"/view/custom_tinymce.css",
theme_advanced_path : false,
file_browser_callback : "fcFileBrowser",
});
}
/**
* sprintf in javascript
* "{0} and {1}".format('zero','uno');
**/
String.prototype.format = function() {
var formatted = this;
for (var i = 0; i < arguments.length; i++) {
var regexp = new RegExp('\\{'+i+'\\}', 'gi');
formatted = formatted.replace(regexp, arguments[i]);
}
return formatted;
};
// Array Remove
Array.prototype.remove = function(item) {
to=undefined; from=this.indexOf(item);
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
function previewTheme(elm) {
theme = $(elm).val();
$.getJSON('pretheme?f=&theme=' + theme,function(data) {
$('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><div id="theme-version">' + data.version + '</div><div id="theme-credits">' + data.credits + '</div><a href="' + data.img + '"><img src="' + data.img + '" width="320" height="240" alt="' + theme + '" /></a>');
});
}

+ 184
- 0
view/theme/frost/js/theme.js View File

@ -0,0 +1,184 @@
$(document).ready(function() {
window.navMenuTimeout = {
'#network-menu-list-timeout': null,
'#contacts-menu-list-timeout': null,
'#system-menu-list-timeout': null,
'#network-menu-list-opening': false,
'#contacts-menu-list-opening': false,
'#system-menu-list-opening': false,
'#network-menu-list-closing': false,
'#contacts-menu-list-closing': false,
'#system-menu-list-closing': false
};
$.ajaxSetup({
cache: false
});
$('.nav-menu-link').hover(function() {
showNavMenu($(this).attr('rel'));
}, function() {
hideNavMenu($(this).attr('rel'));
});
/* $('html').click(function() { $("#nav-notifications-menu" ).hide(); });*/
$('.group-edit-icon').hover(
function() {
$(this).addClass('icon'); $(this).removeClass('iconspacer');},
function() {
$(this).removeClass('icon'); $(this).addClass('iconspacer');}
);
$('.sidebar-group-element').hover(
function() {
id = $(this).attr('id');
$('#edit-' + id).addClass('icon'); $('#edit-' + id).removeClass('iconspacer');},
function() {
id = $(this).attr('id');
$('#edit-' + id).removeClass('icon');$('#edit-' + id).addClass('iconspacer');}
);
$('.savedsearchdrop').hover(
function() {
$(this).addClass('drop'); $(this).addClass('icon'); $(this).removeClass('iconspacer');},
function() {
$(this).removeClass('drop'); $(this).removeClass('icon'); $(this).addClass('iconspacer');}
);
$('.savedsearchterm').hover(
function() {
id = $(this).attr('id');
$('#drop-' + id).addClass('icon'); $('#drop-' + id).addClass('drophide'); $('#drop-' + id).removeClass('iconspacer');},
function() {
id = $(this).attr('id');
$('#drop-' + id).removeClass('icon');$('#drop-' + id).removeClass('drophide'); $('#drop-' + id).addClass('iconspacer');}
);
/* $('.nav-load-page-link').click(function() {
getPageContent( $(this).attr('href') );
hideNavMenu( '#' + $(this).closest('ul').attr('id') );
return false;
});*/
});
function insertFormatting(comment,BBcode,id) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == comment) {
tmpStr = "";
$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
openMenu("comment-edit-submit-wrapper-" + id);
$("#comment-edit-text-" + id).val(tmpStr);
}
textarea = document.getElementById("comment-edit-text-" +id);