mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 09:35:11 +00:00
Merge pull request #931 from dawnbreak/master
Some JavaScript cleanups.
This commit is contained in:
commit
e780dada83
14 changed files with 1308 additions and 1387 deletions
|
@ -523,9 +523,7 @@ function downgrade_accounts() {
|
|||
|
||||
$basic = get_config('system','default_service_class');
|
||||
|
||||
|
||||
foreach($r as $rr) {
|
||||
|
||||
if(($basic) && ($rr['account_service_class']) && ($rr['account_service_class'] != $basic)) {
|
||||
$x = q("UPDATE account set account_service_class = '%s', account_expires = '%s'
|
||||
where account_id = %d",
|
||||
|
@ -550,97 +548,96 @@ function downgrade_accounts() {
|
|||
}
|
||||
|
||||
|
||||
|
||||
// check service_class restrictions. If there are no service_classes defined, everything is allowed.
|
||||
// if $usage is supplied, we check against a maximum count and return true if the current usage is
|
||||
// less than the subscriber plan allows. Otherwise we return boolean true or false if the property
|
||||
// is allowed (or not) in this subscriber plan. An unset property for this service plan means
|
||||
// the property is allowed, so it is only necessary to provide negative properties for each plan,
|
||||
// or what the subscriber is not allowed to do.
|
||||
|
||||
|
||||
/**
|
||||
* @brief Check service_class restrictions.
|
||||
*
|
||||
* If there are no service_classes defined, everything is allowed.
|
||||
* If $usage is supplied, we check against a maximum count and return true if
|
||||
* the current usage is less than the subscriber plan allows. Otherwise we
|
||||
* return boolean true or false if the property is allowed (or not) in this
|
||||
* subscriber plan. An unset property for this service plan means the property
|
||||
* is allowed, so it is only necessary to provide negative properties for each
|
||||
* plan, or what the subscriber is not allowed to do.
|
||||
*
|
||||
* Like account_service_class_allows() but queries directly by account rather
|
||||
* than channel. Service classes are set for accounts, so we look up the
|
||||
* account for the channel and fetch the service class restrictions of the
|
||||
* account.
|
||||
*
|
||||
* @see account_service_class_allows() if you have a channel_id already
|
||||
* @see service_class_fetch()
|
||||
*
|
||||
* @param int $uid The channel_id to check
|
||||
* @param string $property The service class property to check for
|
||||
* @param string|boolean $usage (optional) The value to check against
|
||||
* @return boolean
|
||||
*/
|
||||
function service_class_allows($uid, $property, $usage = false) {
|
||||
$a = get_app();
|
||||
if($uid == local_channel()) {
|
||||
$service_class = $a->account['account_service_class'];
|
||||
}
|
||||
else {
|
||||
$r = q("select account_service_class as service_class
|
||||
from channel c, account a
|
||||
where c.channel_account_id=a.account_id and c.channel_id= %d limit 1",
|
||||
intval($uid)
|
||||
);
|
||||
if($r !== false and count($r)) {
|
||||
$service_class = $r[0]['service_class'];
|
||||
}
|
||||
}
|
||||
if(! x($service_class))
|
||||
return true; // everything is allowed
|
||||
$limit = service_class_fetch($uid, $property);
|
||||
|
||||
$arr = get_config('service_class',$service_class);
|
||||
if(! is_array($arr) || (! count($arr)))
|
||||
return true;
|
||||
if($limit === false)
|
||||
return true; // No service class set => everything is allowed
|
||||
|
||||
if($usage === false)
|
||||
return ((x($arr[$property])) ? (bool) $arr[$property] : true);
|
||||
else {
|
||||
if(! array_key_exists($property,$arr))
|
||||
return true;
|
||||
|
||||
return (((intval($usage)) < intval($arr[$property])) ? true : false);
|
||||
if($usage === false) {
|
||||
// We use negative values for not allowed properties in a subscriber plan
|
||||
return ((x($limit)) ? (bool) $limit : true);
|
||||
} else {
|
||||
return (((intval($usage)) < intval($limit)) ? true : false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Checks service class restrictions by account_id.
|
||||
* @brief Check service class restrictions by account.
|
||||
*
|
||||
* Like service_class_allows() but queries by account rather than channel.
|
||||
* If there are no service_classes defined, everything is allowed.
|
||||
* If $usage is supplied, we check against a maximum count and return true if
|
||||
* the current usage is less than the subscriber plan allows. Otherwise we
|
||||
* return boolean true or false if the property is allowed (or not) in this
|
||||
* subscriber plan. An unset property for this service plan means the property
|
||||
* is allowed, so it is only necessary to provide negative properties for each
|
||||
* plan, or what the subscriber is not allowed to do.
|
||||
*
|
||||
* @see service_class_allows()
|
||||
* Like service_class_allows() but queries directly by account rather than channel.
|
||||
*
|
||||
* @param int $aid account_id
|
||||
* @param string $property
|
||||
* @param int|boolean $usage, default false
|
||||
* @see service_class_allows() if you have a channel_id instead of an account_id
|
||||
* @see account_service_class_fetch()
|
||||
*
|
||||
* @param int $aid The account_id to check
|
||||
* @param string $property The service class property to check for
|
||||
* @param int|boolean $usage, (optional) The value to check against
|
||||
* @return boolean
|
||||
*
|
||||
* @todo Can't we use here internally account_service_class_fetch() to reduce duplicate code?
|
||||
*/
|
||||
function account_service_class_allows($aid, $property, $usage = false) {
|
||||
$r = q("select account_service_class as service_class from account where account_id = %d limit 1",
|
||||
intval($aid)
|
||||
);
|
||||
if($r !== false and count($r)) {
|
||||
$service_class = $r[0]['service_class'];
|
||||
}
|
||||
|
||||
if(! x($service_class))
|
||||
return true; // everything is allowed
|
||||
$limit = account_service_class_fetch($aid, $property);
|
||||
|
||||
$arr = get_config('service_class', $service_class);
|
||||
if(! is_array($arr) || (! count($arr)))
|
||||
return true;
|
||||
if($limit === false)
|
||||
return true; // No service class is set => everything is allowed
|
||||
|
||||
if($usage === false)
|
||||
return ((x($arr[$property])) ? (bool) $arr[$property] : true);
|
||||
else {
|
||||
if(! array_key_exists($property, $arr))
|
||||
return true;
|
||||
|
||||
return (((intval($usage)) < intval($arr[$property])) ? true : false);
|
||||
if($usage === false) {
|
||||
// We use negative values for not allowed properties in a subscriber plan
|
||||
return ((x($limit)) ? (bool) $limit : true);
|
||||
} else {
|
||||
return (((intval($usage)) < intval($limit)) ? true : false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Fetches a service class for a channel_id and property.
|
||||
* @brief Queries a service class value for a channel and property.
|
||||
*
|
||||
* Service classes are set for accounts, so look up the account for this channel
|
||||
* and fetch the service classe of the account.
|
||||
*
|
||||
* This method not just checks if a service class is allowed like service_class_allows(),
|
||||
* but also returns the service class value.
|
||||
* If no service class is available it returns false and everything should be
|
||||
* allowed.
|
||||
*
|
||||
* @param int $uid channel_id
|
||||
* @param string $property
|
||||
* @see account_service_class_fetch()
|
||||
*
|
||||
* @param int $uid The channel_id to query
|
||||
* @param string $property The service property name to check for
|
||||
* @return boolean|int
|
||||
*
|
||||
* @todo Should we merge this with account_service_class_fetch()?
|
||||
*/
|
||||
function service_class_fetch($uid, $property) {
|
||||
$a = get_app();
|
||||
|
@ -668,8 +665,18 @@ function service_class_fetch($uid, $property) {
|
|||
return((array_key_exists($property, $arr)) ? $arr[$property] : false);
|
||||
}
|
||||
|
||||
// like service_class_fetch but queries by account rather than channel
|
||||
|
||||
/**
|
||||
* @brief Queries a service class value for an account and property.
|
||||
*
|
||||
* Like service_class_fetch() but queries by account rather than channel.
|
||||
*
|
||||
* @see service_class_fetch() if you have channel_id.
|
||||
* @see account_service_class_allows()
|
||||
*
|
||||
* @param int $aid The account_id to query
|
||||
* @param string $property The service property name to check for
|
||||
* @return boolean|int
|
||||
*/
|
||||
function account_service_class_fetch($aid, $property) {
|
||||
|
||||
$r = q("select account_service_class as service_class from account where account_id = %d limit 1",
|
||||
|
@ -692,7 +699,7 @@ function account_service_class_fetch($aid, $property) {
|
|||
|
||||
|
||||
function upgrade_link($bbcode = false) {
|
||||
$l = get_config('service_class','upgrade_link');
|
||||
$l = get_config('service_class', 'upgrade_link');
|
||||
if(! $l)
|
||||
return '';
|
||||
if($bbcode)
|
||||
|
@ -710,4 +717,4 @@ function upgrade_message($bbcode = false) {
|
|||
function upgrade_bool_message($bbcode = false) {
|
||||
$x = upgrade_link($bbcode);
|
||||
return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ;
|
||||
}
|
||||
}
|
206
view/js/acl.js
206
view/js/acl.js
|
@ -1,18 +1,18 @@
|
|||
function ACL(backend_url, preset){
|
||||
function ACL(backend_url, preset) {
|
||||
that = this;
|
||||
|
||||
|
||||
that.url = backend_url;
|
||||
|
||||
|
||||
that.kp_timer = null;
|
||||
|
||||
if (preset==undefined) preset = [];
|
||||
|
||||
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");
|
||||
|
@ -20,8 +20,8 @@ function ACL(backend_url, preset){
|
|||
// set the initial ACL lists in case the enclosing form gets submitted before the ajax loader completes.
|
||||
that.on_submit();
|
||||
|
||||
if (preset.length==0) that.showall.removeClass("btn-default").addClass("btn-warning");
|
||||
|
||||
if (preset.length === 0) that.showall.removeClass("btn-default").addClass("btn-warning");
|
||||
|
||||
/*events*/
|
||||
|
||||
$(document).ready(function() {
|
||||
|
@ -36,66 +36,63 @@ function ACL(backend_url, preset){
|
|||
that.on_submit();
|
||||
// }, 5000 );
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// no longer called on submit - call to update whenever a change occurs to the acl list.
|
||||
|
||||
ACL.prototype.on_submit = function(){
|
||||
ACL.prototype.on_submit = function() {
|
||||
aclfileds = $("#acl-fields").html("");
|
||||
$(that.allow_gid).each(function(i,v){
|
||||
$(that.allow_gid).each(function(i,v) {
|
||||
aclfileds.append("<input type='hidden' name='group_allow[]' value='"+v+"'>");
|
||||
});
|
||||
$(that.allow_cid).each(function(i,v){
|
||||
$(that.allow_cid).each(function(i,v) {
|
||||
aclfileds.append("<input type='hidden' name='contact_allow[]' value='"+v+"'>");
|
||||
});
|
||||
$(that.deny_gid).each(function(i,v){
|
||||
$(that.deny_gid).each(function(i,v) {
|
||||
aclfileds.append("<input type='hidden' name='group_deny[]' value='"+v+"'>");
|
||||
});
|
||||
$(that.deny_cid).each(function(i,v){
|
||||
$(that.deny_cid).each(function(i,v) {
|
||||
aclfileds.append("<input type='hidden' name='contact_deny[]' value='"+v+"'>");
|
||||
});
|
||||
// alert(aclfileds);
|
||||
|
||||
//areYouSure jquery plugin: recheck the form here
|
||||
$('form').trigger('checkform.areYouSure');
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
ACL.prototype.search = function(){
|
||||
ACL.prototype.search = function() {
|
||||
var srcstr = $("#acl-search").val();
|
||||
that.list_content.html("");
|
||||
that.get(0,100, srcstr);
|
||||
}
|
||||
that.get(0, 100, srcstr);
|
||||
};
|
||||
|
||||
ACL.prototype.on_search = function(event){
|
||||
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()
|
||||
ACL.prototype.on_showall = function(event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
if (that.showall.hasClass("btn-warning")){
|
||||
|
||||
if (that.showall.hasClass("btn-warning")) {
|
||||
return false;
|
||||
}
|
||||
that.showall.removeClass("btn-default").addClass("btn-warning");
|
||||
|
||||
|
||||
that.allow_cid = [];
|
||||
that.allow_gid = [];
|
||||
that.deny_cid = [];
|
||||
that.deny_gid = [];
|
||||
|
||||
|
||||
that.update_view();
|
||||
that.on_submit();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
ACL.prototype.on_button_show = function(event){
|
||||
event.preventDefault()
|
||||
event.stopImmediatePropagation()
|
||||
return false;
|
||||
};
|
||||
|
||||
ACL.prototype.on_button_show = function(event) {
|
||||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
event.stopPropagation();
|
||||
|
||||
/*that.showall.removeClass("selected");
|
||||
|
@ -104,11 +101,13 @@ ACL.prototype.on_button_show = function(event){
|
|||
|
||||
that.set_allow($(this).parent().attr('id'));
|
||||
that.on_submit();
|
||||
|
||||
return false;
|
||||
}
|
||||
ACL.prototype.on_button_hide = function(event){
|
||||
event.preventDefault()
|
||||
event.stopImmediatePropagation()
|
||||
};
|
||||
|
||||
ACL.prototype.on_button_hide = function(event) {
|
||||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
event.stopPropagation();
|
||||
|
||||
/*that.showall.removeClass("selected");
|
||||
|
@ -117,48 +116,49 @@ ACL.prototype.on_button_hide = function(event){
|
|||
|
||||
that.set_deny($(this).parent().attr('id'));
|
||||
that.on_submit();
|
||||
return false;
|
||||
}
|
||||
|
||||
ACL.prototype.set_allow = function(itemid){
|
||||
return false;
|
||||
};
|
||||
|
||||
ACL.prototype.set_allow = function(itemid) {
|
||||
type = itemid[0];
|
||||
id = itemid.substr(1);
|
||||
switch(type){
|
||||
id = itemid.substr(1);
|
||||
switch(type) {
|
||||
case "g":
|
||||
if (that.allow_gid.indexOf(id)<0){
|
||||
that.allow_gid.push(id)
|
||||
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)
|
||||
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);
|
||||
if (that.deny_cid.indexOf(id)>=0) that.deny_cid.remove(id);
|
||||
break;
|
||||
}
|
||||
that.update_view();
|
||||
}
|
||||
};
|
||||
|
||||
ACL.prototype.set_deny = function(itemid){
|
||||
ACL.prototype.set_deny = function(itemid) {
|
||||
type = itemid[0];
|
||||
id = itemid.substr(1);
|
||||
switch(type){
|
||||
id = itemid.substr(1);
|
||||
switch(type) {
|
||||
case "g":
|
||||
if (that.deny_gid.indexOf(id)<0){
|
||||
that.deny_gid.push(id)
|
||||
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)
|
||||
if (that.deny_cid.indexOf(id)<0) {
|
||||
that.deny_cid.push(id);
|
||||
} else {
|
||||
that.deny_cid.remove(id);
|
||||
}
|
||||
|
@ -166,67 +166,63 @@ ACL.prototype.set_deny = function(itemid){
|
|||
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){
|
||||
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.removeClass("btn-default").addClass("btn-warning");
|
||||
/* jot acl */
|
||||
$('#jot-perms-icon').removeClass('icon-lock').addClass('icon-unlock');
|
||||
$('#jot-public').show();
|
||||
$('.profile-jot-net input').attr('disabled', false);
|
||||
if(typeof editor != 'undefined' && editor != false) {
|
||||
$('#profile-jot-desc').html(ispublic);
|
||||
}
|
||||
|
||||
$('#jot-perms-icon').removeClass('icon-lock').addClass('icon-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("btn-warning").addClass("btn-default");
|
||||
/* jot acl */
|
||||
$('#jot-perms-icon').removeClass('icon-unlock').addClass('icon-lock');
|
||||
$('#jot-public').hide();
|
||||
$('.profile-jot-net input').attr('disabled', 'disabled');
|
||||
$('#profile-jot-desc').html(' ');
|
||||
that.showall.removeClass("btn-warning").addClass("btn-default");
|
||||
/* jot acl */
|
||||
$('#jot-perms-icon').removeClass('icon-unlock').addClass('icon-lock');
|
||||
$('#jot-public').hide();
|
||||
$('.profile-jot-net input').attr('disabled', 'disabled');
|
||||
$('#profile-jot-desc').html(' ');
|
||||
}
|
||||
$("#acl-list-content .acl-list-item").each(function(){
|
||||
$("#acl-list-content .acl-list-item").each(function() {
|
||||
$(this).removeClass("groupshow grouphide");
|
||||
});
|
||||
|
||||
$("#acl-list-content .acl-list-item").each(function(){
|
||||
$("#acl-list-content .acl-list-item").each(function() {
|
||||
itemid = $(this).attr('id');
|
||||
type = itemid[0];
|
||||
id = itemid.substr(1);
|
||||
|
||||
id = itemid.substr(1);
|
||||
|
||||
btshow = $(this).children(".acl-button-show").removeClass("btn-success").addClass("btn-default");
|
||||
bthide = $(this).children(".acl-button-hide").removeClass("btn-danger").addClass("btn-default");
|
||||
|
||||
switch(type){
|
||||
|
||||
switch(type) {
|
||||
case "g":
|
||||
var uclass = "";
|
||||
if (that.allow_gid.indexOf(id)>=0){
|
||||
if (that.allow_gid.indexOf(id)>=0) {
|
||||
btshow.removeClass("btn-default").addClass("btn-success");
|
||||
bthide.removeClass("btn-danger").addClass("btn-default");
|
||||
uclass="groupshow";
|
||||
}
|
||||
if (that.deny_gid.indexOf(id)>=0){
|
||||
if (that.deny_gid.indexOf(id)>=0) {
|
||||
btshow.removeClass("btn-success").addClass("btn-default");
|
||||
bthide.removeClass("btn-default").addClass("btn-danger");
|
||||
uclass="grouphide";
|
||||
uclass = "grouphide";
|
||||
}
|
||||
|
||||
$(that.group_uids[id]).each(function(i,v) {
|
||||
$(that.group_uids[id]).each(function(i, v) {
|
||||
if(uclass == "grouphide")
|
||||
$("#c"+v).removeClass("groupshow");
|
||||
if(uclass != "") {
|
||||
if(uclass !== "") {
|
||||
var cls = $("#c"+v).attr('class');
|
||||
if( cls == undefined)
|
||||
if( cls === undefined)
|
||||
return true;
|
||||
var hiding = cls.indexOf('grouphide');
|
||||
if(hiding == -1)
|
||||
$("#c"+v).addClass(uclass);
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
case "c":
|
||||
if (that.allow_cid.indexOf(id)>=0){
|
||||
|
@ -236,45 +232,41 @@ ACL.prototype.update_view = function(){
|
|||
if (that.deny_cid.indexOf(id)>=0){
|
||||
btshow.removeClass("btn-success").addClass("btn-default");
|
||||
bthide.removeClass("btn-default").addClass("btn-danger");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
ACL.prototype.get = function(start,count, search){
|
||||
ACL.prototype.get = function(start, count, search) {
|
||||
var postdata = {
|
||||
start:start,
|
||||
count:count,
|
||||
search:search,
|
||||
}
|
||||
|
||||
start: start,
|
||||
count: count,
|
||||
search: search,
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
type:'POST',
|
||||
type: 'POST',
|
||||
url: that.url,
|
||||
data: postdata,
|
||||
dataType: 'json',
|
||||
success:that.populate
|
||||
success: that.populate
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
ACL.prototype.populate = function(data){
|
||||
ACL.prototype.populate = function(data) {
|
||||
var height = Math.ceil(data.items.length / that.nw) * 42;
|
||||
that.list_content.height(height);
|
||||
$(data.items).each(function(){
|
||||
html = "<div class='acl-list-item {4} {7} {5}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>";
|
||||
html = html.format(this.photo, this.name, this.type, this.xid, '', this.self, this.link, this.taggable);
|
||||
if (this.uids!=undefined) that.group_uids[this.id] = this.uids;
|
||||
if (this.uids !== undefined) that.group_uids[this.id] = this.uids;
|
||||
//console.log(html);
|
||||
that.list_content.append(html);
|
||||
});
|
||||
$("#acl-list-content .acl-list-item img[data-src]").each(function(i, el){
|
||||
$("#acl-list-content .acl-list-item img[data-src]").each(function(i, el) {
|
||||
// Replace data-src attribute with src attribute for every image
|
||||
$(el).attr('src', $(el).data("src"));
|
||||
$(el).removeAttr("data-src");
|
||||
});
|
||||
that.update_view();
|
||||
}
|
||||
|
||||
};
|
|
@ -4,7 +4,7 @@
|
|||
* require jQuery, jquery.textcomplete
|
||||
*/
|
||||
function contact_search(term, callback, backend_url, type, extra_channels, spinelement) {
|
||||
if(spinelement){
|
||||
if(spinelement) {
|
||||
$(spinelement).spin('tiny');
|
||||
}
|
||||
// Check if there is a cached result that contains the same information we would get with a full server-side search
|
||||
|
@ -12,13 +12,13 @@ function contact_search(term, callback, backend_url, type, extra_channels, spine
|
|||
if(!(bt in contact_search.cache)) contact_search.cache[bt] = {};
|
||||
|
||||
var lterm = term.toLowerCase(); // Ignore case
|
||||
for(t in contact_search.cache[bt]) {
|
||||
for(var t in contact_search.cache[bt]) {
|
||||
if(lterm.indexOf(t) >= 0) { // A more broad search has been performed already, so use those results
|
||||
$(spinelement).spin(false);
|
||||
// Filter old results locally
|
||||
var matching = contact_search.cache[bt][t].filter(function (x) { return (x.name.toLowerCase().indexOf(lterm) >= 0 || (typeof x.nick !== 'undefined' && x.nick.toLowerCase().indexOf(lterm) >= 0)); }); // Need to check that nick exists because groups don't have one
|
||||
var matching = contact_search.cache[bt][t].filter(function (x) { return (x.name.toLowerCase().indexOf(lterm) >= 0 || (typeof x.nick !== 'undefined' && x.nick.toLowerCase().indexOf(lterm) >= 0)); }); // Need to check that nick exists because groups don't have one
|
||||
matching.unshift({taggable:false, text: term, replace: term});
|
||||
setTimeout(function() { callback(matching)} , 1); // Use "pseudo-thread" to avoid some problems
|
||||
setTimeout(function() { callback(matching); } , 1); // Use "pseudo-thread" to avoid some problems
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -28,17 +28,17 @@ function contact_search(term, callback, backend_url, type, extra_channels, spine
|
|||
count:100,
|
||||
search:term,
|
||||
type:type,
|
||||
}
|
||||
};
|
||||
|
||||
if(typeof extra_channels !== 'undefined' && extra_channels)
|
||||
postdata['extra_channels[]'] = extra_channels;
|
||||
|
||||
|
||||
$.ajax({
|
||||
type:'POST',
|
||||
url: backend_url,
|
||||
data: postdata,
|
||||
dataType: 'json',
|
||||
success:function(data){
|
||||
success: function(data){
|
||||
// Cache results if we got them all (more information would not improve results)
|
||||
// data.count represents the maximum number of items
|
||||
if(data.items.length -1 < data.count) {
|
||||
|
@ -57,18 +57,18 @@ contact_search.cache = {};
|
|||
function contact_format(item) {
|
||||
// Show contact information if not explicitly told to show something else
|
||||
if(typeof item.text === 'undefined') {
|
||||
var desc = ((item.label) ? item.nick + ' ' + item.label : item.nick)
|
||||
var desc = ((item.label) ? item.nick + ' ' + item.label : item.nick);
|
||||
if(typeof desc === 'undefined') desc = '';
|
||||
if(desc) desc = ' ('+desc+')';
|
||||
return "<div class='{0}' title='{4}'><img src='{1}'><span class='contactname'>{2}</span><span class='dropdown-sub-text'>{3}</span><div class='clear'></div></div>".format(item.taggable, item.photo, item.name, desc, item.link)
|
||||
return "<div class='{0}' title='{4}'><img src='{1}'><span class='contactname'>{2}</span><span class='dropdown-sub-text'>{3}</span><div class='clear'></div></div>".format(item.taggable, item.photo, item.name, desc, item.link);
|
||||
}
|
||||
else
|
||||
return "<div>"+item.text+"</div>"
|
||||
return "<div>" + item.text + "</div>";
|
||||
}
|
||||
|
||||
function editor_replace(item) {
|
||||
if(typeof item.replace !== 'undefined') {
|
||||
return '$1$2'+item.replace;
|
||||
return '$1$2' + item.replace;
|
||||
}
|
||||
|
||||
// $2 ensures that prefix (@,@!) is preserved
|
||||
|
@ -77,7 +77,8 @@ function editor_replace(item) {
|
|||
// 16 chars is also the minimum length in the backend (otherwise it's interpreted as a local id).
|
||||
if(id.length > 16)
|
||||
id = item.id.substring(0,16);
|
||||
return '$1$2'+item.nick.replace(' ','') + '+' + id + ' ';
|
||||
|
||||
return '$1$2' + item.nick.replace(' ', '') + '+' + id + ' ';
|
||||
}
|
||||
|
||||
function basic_replace(item) {
|
||||
|
@ -94,76 +95,71 @@ function submit_form(e) {
|
|||
/**
|
||||
* jQuery plugin 'editor_autocomplete'
|
||||
*/
|
||||
(function( $ ){
|
||||
(function( $ ) {
|
||||
$.fn.editor_autocomplete = function(backend_url, extra_channels) {
|
||||
if (typeof extra_channels === 'undefined') extra_channels = false;
|
||||
if (typeof extra_channels === 'undefined') extra_channels = false;
|
||||
|
||||
// Autocomplete contacts
|
||||
contacts = {
|
||||
match: /(^|\s)(@\!*)([^ \n]+)$/,
|
||||
index: 3,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, 'c', extra_channels, spinelement=false); },
|
||||
replace: editor_replace,
|
||||
template: contact_format,
|
||||
}
|
||||
// Autocomplete contacts
|
||||
contacts = {
|
||||
match: /(^|\s)(@\!*)([^ \n]+)$/,
|
||||
index: 3,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, 'c', extra_channels, spinelement=false); },
|
||||
replace: editor_replace,
|
||||
template: contact_format,
|
||||
};
|
||||
|
||||
smilies = {
|
||||
match: /(^|\s)(:[a-z]{2,})$/,
|
||||
index: 2,
|
||||
search: function(term, callback) { $.getJSON('/smilies/json').done(function(data) { callback($.map(data, function(entry) { return entry['text'].indexOf(term) === 0 ? entry : null })) }) },
|
||||
template: function(item) { return item['icon'] + item['text'] },
|
||||
replace: function(item) { return "$1"+item['text'] + ' '; },
|
||||
}
|
||||
this.attr('autocomplete','off');
|
||||
this.textcomplete([contacts,smilies],{className:'acpopup',zIndex:1020});
|
||||
};
|
||||
smilies = {
|
||||
match: /(^|\s)(:[a-z]{2,})$/,
|
||||
index: 2,
|
||||
search: function(term, callback) { $.getJSON('/smilies/json').done(function(data) { callback($.map(data, function(entry) { return entry.text.indexOf(term) === 0 ? entry : null; })); }); },
|
||||
template: function(item) { return item.icon + item.text; },
|
||||
replace: function(item) { return "$1" + item.text + ' '; },
|
||||
};
|
||||
this.attr('autocomplete','off');
|
||||
this.textcomplete([contacts,smilies], {className:'acpopup', zIndex:1020});
|
||||
};
|
||||
})( jQuery );
|
||||
|
||||
/**
|
||||
* jQuery plugin 'search_autocomplete'
|
||||
*/
|
||||
(function( $ ){
|
||||
(function( $ ) {
|
||||
$.fn.search_autocomplete = function(backend_url) {
|
||||
|
||||
// Autocomplete contacts
|
||||
contacts = {
|
||||
match: /(^@)([^\n]{2,})$/,
|
||||
index: 2,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, 'x', [], spinelement='#nav-search-spinner'); },
|
||||
replace: basic_replace,
|
||||
template: contact_format,
|
||||
}
|
||||
this.attr('autocomplete','off');
|
||||
var a = this.textcomplete([contacts],{className:'acpopup',maxCount:100,zIndex: 1020,appendTo:'nav'});
|
||||
|
||||
a.on('textComplete:select', function(e,value,strategy) { submit_form(this); });
|
||||
|
||||
};
|
||||
// Autocomplete contacts
|
||||
contacts = {
|
||||
match: /(^@)([^\n]{2,})$/,
|
||||
index: 2,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, 'x', [], spinelement='#nav-search-spinner'); },
|
||||
replace: basic_replace,
|
||||
template: contact_format,
|
||||
};
|
||||
this.attr('autocomplete', 'off');
|
||||
var a = this.textcomplete([contacts], {className:'acpopup', maxCount:100, zIndex: 1020, appendTo:'nav'});
|
||||
a.on('textComplete:select', function(e, value, strategy) { submit_form(this); });
|
||||
};
|
||||
})( jQuery );
|
||||
|
||||
(function( $ ){
|
||||
(function( $ ) {
|
||||
$.fn.contact_autocomplete = function(backend_url, typ, autosubmit, onselect) {
|
||||
if(typeof typ === 'undefined') typ = '';
|
||||
if(typeof autosubmit === 'undefined') autosubmit = false;
|
||||
|
||||
if(typeof typ === 'undefined') typ = '';
|
||||
if(typeof autosubmit === 'undefined') autosubmit = false;
|
||||
// Autocomplete contacts
|
||||
contacts = {
|
||||
match: /(^)([^\n]+)$/,
|
||||
index: 2,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, typ,[], spinelement=false); },
|
||||
replace: basic_replace,
|
||||
template: contact_format,
|
||||
};
|
||||
|
||||
// Autocomplete contacts
|
||||
contacts = {
|
||||
match: /(^)([^\n]+)$/,
|
||||
index: 2,
|
||||
search: function(term, callback) { contact_search(term, callback, backend_url, typ,[], spinelement=false); },
|
||||
replace: basic_replace,
|
||||
template: contact_format,
|
||||
}
|
||||
this.attr('autocomplete','off');
|
||||
var a = this.textcomplete([contacts], {className:'acpopup', zIndex:1020});
|
||||
|
||||
this.attr('autocomplete','off');
|
||||
var a = this.textcomplete([contacts],{className:'acpopup',zIndex:1020});
|
||||
|
||||
if(autosubmit)
|
||||
a.on('textComplete:select', function(e,value,strategy) { submit_form(this); });
|
||||
|
||||
if(typeof onselect !== 'undefined')
|
||||
a.on('textComplete:select',function(e,value,strategy) { onselect(value); });
|
||||
};
|
||||
})( jQuery );
|
||||
if(autosubmit)
|
||||
a.on('textComplete:select', function(e,value,strategy) { submit_form(this); });
|
||||
|
||||
if(typeof onselect !== 'undefined')
|
||||
a.on('textComplete:select', function(e, value, strategy) { onselect(value); });
|
||||
};
|
||||
})( jQuery );
|
1928
view/js/main.js
1928
view/js/main.js
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,8 @@
|
|||
$(document).ready(function() {
|
||||
/**
|
||||
* JavaScript for mod/chat
|
||||
*/
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
|
||||
var selstr;
|
||||
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
|
||||
|
@ -7,10 +10,9 @@ $(document).ready(function() {
|
|||
$('#jot-perms-icon').removeClass('icon-unlock').addClass('icon-lock');
|
||||
$('#jot-public').hide();
|
||||
});
|
||||
if(selstr == null) {
|
||||
if(selstr === null) {
|
||||
$('#jot-perms-icon').removeClass('icon-lock').addClass('icon-unlock');
|
||||
$('#jot-public').show();
|
||||
}
|
||||
|
||||
}).trigger('change');
|
||||
});
|
||||
});
|
|
@ -1,17 +1,15 @@
|
|||
function dirdetails(hash) {
|
||||
|
||||
$.get('dirprofile' + '?f=&hash=' + hash, function( data ) {
|
||||
$.colorbox({ maxWidth: "80%", maxHeight: "75%", scrolling: false, html: data });
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
var ratingVal = 0;
|
||||
var ratingText = '';
|
||||
var currentHash = '';
|
||||
|
||||
function fetchRatings(hash) {
|
||||
$.get('prate/'+hash, function(data) {
|
||||
$.get('prate/' + hash, function(data) {
|
||||
if(typeof(data.rating) !== 'undefined') {
|
||||
ratingVal = data.rating;
|
||||
ratingText = data.rating_text;
|
||||
|
@ -20,22 +18,21 @@ function fetchRatings(hash) {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
function doRatings(hash) {
|
||||
fetchRatings(hash);
|
||||
}
|
||||
|
||||
function buildRatingForm(hash) {
|
||||
var html = '<form id="ratings_form" action="prate" method="post"><input type="hidden" name="target" value="'+hash+'" /><div class="rating-desc">'+aStr['rating_desc']+'</div><input id="dir-rating-range" class="directory-slider" type="text" value="'+ratingVal+'" name="rating" style="display: none;" /><div class="rating-text-label">'+aStr['rating_text']+'<input type="text" name="rating_text" class="directory-rating-text" value="'+ratingText+'" /><br /><input name="submit" class="directory-rating-submit" type="submit" value="'+aStr['submit']+'" onclick="postRatings(); return false;"></form><div class="clear"></div><script>$("#dir-rating-range").jRange({ from: -10, to: 10, step: 1, showLabels: false, showScale: true, scale : [ "-10","-5","0","5","10" ], onstatechange: function(v) { $("#dir-rating-range").val(v); } });</script>';
|
||||
var html = '<form id="ratings_form" action="prate" method="post"><input type="hidden" name="target" value="'+hash+'" /><div class="rating-desc">' + aStr.rating_desc + '</div><input id="dir-rating-range" class="directory-slider" type="text" value="' + ratingVal + '" name="rating" style="display: none;" /><div class="rating-text-label">' + aStr.rating_text + '<input type="text" name="rating_text" class="directory-rating-text" value="' + ratingText + '" /><br /><input name="submit" class="directory-rating-submit" type="submit" value="' + aStr.submit + '" onclick="postRatings(); return false;"></form><div class="clear"></div><script>$("#dir-rating-range").jRange({ from: -10, to: 10, step: 1, showLabels: false, showScale: true, scale: [ "-10","-5","0","5","10" ], onstatechange: function(v) { $("#dir-rating-range").val(v); } });</script>';
|
||||
|
||||
$.colorbox({maxwidth: "50%", maxHeight: "50%", scrolling: false, html: html, close: 'X' });
|
||||
currentHash = hash;
|
||||
}
|
||||
|
||||
function postRatings() {
|
||||
$.post('prate',$('#ratings_form').serialize(),function(data) {
|
||||
$.post('prate', $('#ratings_form').serialize(), function(data) {
|
||||
$.colorbox.remove();
|
||||
$('#edited-'+currentHash).show();
|
||||
$('#edited-' + currentHash).show();
|
||||
},'json');
|
||||
}
|
||||
|
||||
|
|
|
@ -1,35 +1,34 @@
|
|||
/**
|
||||
* JavaScript for mod/events
|
||||
*/
|
||||
|
||||
$(document).ready( function() { showHideFinishDate(); });
|
||||
|
||||
function showHideFinishDate() {
|
||||
if( $('#id_nofinish').is(':checked'))
|
||||
$('#event-finish-wrapper').hide();
|
||||
else
|
||||
$('#event-finish-wrapper').show();
|
||||
}
|
||||
|
||||
function eventGetStart() {
|
||||
//reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
|
||||
$('#startModal').modal();
|
||||
$('#start-modal-OKButton').on('click', function() {
|
||||
reply=$('#start-date').val();
|
||||
if(reply && reply.length) {
|
||||
function showHideFinishDate() {
|
||||
if( $('#id_nofinish').is(':checked'))
|
||||
$('#event-finish-wrapper').hide();
|
||||
else
|
||||
$('#event-finish-wrapper').show();
|
||||
}
|
||||
function eventGetStart() {
|
||||
//reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
|
||||
$('#startModal').modal();
|
||||
$('#start-modal-OKButton').on('click', function() {
|
||||
reply=$('#start-date').val();
|
||||
if(reply && reply.length) {
|
||||
$('#start-text').val(reply);
|
||||
$('#startModal').modal('hide');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
function eventGetFinish() {
|
||||
//reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
|
||||
$('#finishModal').modal();
|
||||
$('#finish-modal-OKButton').on('click', function() {
|
||||
reply=$('#finish-date').val();
|
||||
if(reply && reply.length) {
|
||||
});
|
||||
}
|
||||
function eventGetFinish() {
|
||||
//reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
|
||||
$('#finishModal').modal();
|
||||
$('#finish-modal-OKButton').on('click', function() {
|
||||
reply=$('#finish-date').val();
|
||||
if(reply && reply.length) {
|
||||
$('#finish-text').val(reply);
|
||||
$('#finishModal').modal('hide');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
});
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
/**
|
||||
* JavaScript used by mod/filestorage
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
|
||||
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
|
||||
var selstr;
|
||||
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
|
||||
|
@ -7,11 +9,9 @@ $(document).ready(function() {
|
|||
$('#jot-perms-icon').removeClass('icon-unlock').addClass('icon-lock');
|
||||
$('#jot-public').hide();
|
||||
});
|
||||
if(selstr == null) {
|
||||
if(selstr === null) {
|
||||
$('#jot-perms-icon').removeClass('icon-lock').addClass('icon-unlock');
|
||||
$('#jot-public').show();
|
||||
}
|
||||
|
||||
}).trigger('change');
|
||||
|
||||
});
|
||||
});
|
|
@ -1,11 +1,12 @@
|
|||
/**
|
||||
* JavaScript used by mod/mitem.
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
|
||||
$("a#settings-default-perms-menu").colorbox({
|
||||
'inline' : true,
|
||||
'transition' : 'elastic'
|
||||
$("a#settings-default-perms-menu").colorbox({
|
||||
'inline' : true,
|
||||
'transition' : 'elastic'
|
||||
});
|
||||
|
||||
|
||||
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
|
||||
var selstr;
|
||||
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
|
||||
|
@ -13,10 +14,9 @@ $(document).ready(function() {
|
|||
$('#jot-perms-icon').removeClass('icon-unlock').addClass('icon-lock');
|
||||
$('#jot-public').hide();
|
||||
});
|
||||
if(selstr == null) {
|
||||
if(selstr === null) {
|
||||
$('#jot-perms-icon').removeClass('icon-lock').addClass('icon-unlock');
|
||||
$('#jot-public').show();
|
||||
}
|
||||
|
||||
}).trigger('change');
|
||||
});
|
||||
});
|
|
@ -1,12 +1,16 @@
|
|||
/**
|
||||
* JavaScript used by mod/photos
|
||||
*/
|
||||
|
||||
var ispublic = aStr['everybody'];
|
||||
// is this variable used anywhere?
|
||||
var ispublic = aStr.everybody;
|
||||
|
||||
$(document).ready(function() {
|
||||
$(document).ready(function() {
|
||||
$(document).ready(function() {
|
||||
$("#photo-edit-newtag").contact_autocomplete(baseurl + '/acl', 'p', false, function(data) {
|
||||
$("#photo-edit-newtag").val('@' + data.name);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
|
||||
var selstr;
|
||||
|
@ -15,10 +19,9 @@ $(document).ready(function() {
|
|||
$('#jot-perms-icon').removeClass('icon-unlock').addClass('icon-lock');
|
||||
$('#jot-public').hide();
|
||||
});
|
||||
if(selstr == null) {
|
||||
if(selstr === null) {
|
||||
$('#jot-perms-icon').removeClass('icon-lock').addClass('icon-unlock');
|
||||
$('#jot-public').show();
|
||||
}
|
||||
|
||||
}).trigger('change');
|
||||
});
|
||||
});
|
|
@ -1,29 +1,29 @@
|
|||
$(document).ready(function() {
|
||||
$("#register-email").blur(function() {
|
||||
var zreg_email = $("#register-email").val();
|
||||
$.get("register/email_check.json?f=&email=" + encodeURIComponent(zreg_email),function(data) {
|
||||
$("#register-email-feedback").html(data.message);
|
||||
zFormError("#register-email-feedback",data.error);
|
||||
});
|
||||
});
|
||||
$("#register-password").blur(function() {
|
||||
if(($("#register-password").val()).length < 6 ) {
|
||||
$("#register-password-feedback").html(aStr['pwshort']);
|
||||
zFormError("#register-password-feedback",true);
|
||||
}
|
||||
else {
|
||||
$("#register-password-feedback").html("");
|
||||
zFormError("#register-password-feedback",false);
|
||||
}
|
||||
});
|
||||
$("#register-password2").blur(function() {
|
||||
if($("#register-password").val() != $("#register-password2").val()) {
|
||||
$("#register-password2-feedback").html(aStr['pwnomatch']);
|
||||
zFormError("#register-password2-feedback",true);
|
||||
}
|
||||
else {
|
||||
$("#register-password2-feedback").html("");
|
||||
zFormError("#register-password2-feedback",false);
|
||||
}
|
||||
$(document).ready(function() {
|
||||
$("#register-email").blur(function() {
|
||||
var zreg_email = $("#register-email").val();
|
||||
$.get("register/email_check.json?f=&email=" + encodeURIComponent(zreg_email), function(data) {
|
||||
$("#register-email-feedback").html(data.message);
|
||||
zFormError("#register-email-feedback",data.error);
|
||||
});
|
||||
});
|
||||
$("#register-password").blur(function() {
|
||||
if(($("#register-password").val()).length < 6 ) {
|
||||
$("#register-password-feedback").html(aStr.pwshort);
|
||||
zFormError("#register-password-feedback", true);
|
||||
}
|
||||
else {
|
||||
$("#register-password-feedback").html("");
|
||||
zFormError("#register-password-feedback", false);
|
||||
}
|
||||
});
|
||||
$("#register-password2").blur(function() {
|
||||
if($("#register-password").val() != $("#register-password2").val()) {
|
||||
$("#register-password2-feedback").html(aStr.pwnomatch);
|
||||
zFormError("#register-password2-feedback", true);
|
||||
}
|
||||
else {
|
||||
$("#register-password2-feedback").html("");
|
||||
zFormError("#register-password2-feedback", false);
|
||||
}
|
||||
});
|
||||
});
|
|
@ -1,5 +1,9 @@
|
|||
/**
|
||||
* JavaScript used by mod/settings
|
||||
*/
|
||||
|
||||
var ispublic = aStr['everybody'] ;
|
||||
// is this used anywhere?
|
||||
var ispublic = aStr.everybody;
|
||||
|
||||
$(document).ready(function() {
|
||||
$('form').areYouSure({'addRemoveFieldsMarksDirty':true}); // Warn user about unsaved settings
|
||||
|
@ -19,13 +23,11 @@ $(document).ready(function() {
|
|||
$('#jot-perms-icon').removeClass('icon-unlock').addClass('icon-lock');
|
||||
$('#jot-public').hide();
|
||||
});
|
||||
if(selstr == null) {
|
||||
if(selstr === null) {
|
||||
$('#jot-perms-icon').removeClass('icon-lock').addClass('icon-unlock');
|
||||
$('#jot-public').show();
|
||||
}
|
||||
|
||||
}).trigger('change');
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
|
@ -132,7 +134,5 @@ function channel_privacy_macro(n) {
|
|||
$('#id_profile_in_directory_onoff .on').removeClass('hidden');
|
||||
$('#id_profile_in_directory_onoff .off').addClass('hidden');
|
||||
$('#id_profile_in_directory').val(1);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -4,7 +4,7 @@ var ratingText = '';
|
|||
var currentHash = '';
|
||||
|
||||
function fetchRatings(hash) {
|
||||
$.get('prate/'+hash, function(data) {
|
||||
$.get('prate/' + hash, function(data) {
|
||||
if(typeof(data.rating) !== 'undefined') {
|
||||
ratingVal = data.rating;
|
||||
ratingText = data.rating_text;
|
||||
|
@ -13,22 +13,20 @@ function fetchRatings(hash) {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
function doRatings(hash) {
|
||||
fetchRatings(hash);
|
||||
}
|
||||
|
||||
function buildRatingForm(hash) {
|
||||
var html = '<form id="ratings_form" action="prate" method="post"><input type="hidden" name="target" value="'+hash+'" /><div class="rating-desc">'+aStr['rating_desc']+'</div><input id="dir-rating-range" class="directory-slider" type="text" value="'+ratingVal+'" name="rating" style="display: none;" /><div class="rating-text-label">'+aStr['rating_text']+'<input type="text" name="rating_text" class="directory-rating-text" value="'+ratingText+'" /><br /><input name="submit" class="directory-rating-submit" type="submit" value="'+aStr['submit']+'" onclick="postRatings(); return false;"></form><div class="clear"></div><script>$("#dir-rating-range").jRange({ from: -10, to: 10, step: 1, showLabels: false, showScale: true, scale : [ "-10","-5","0","5","10" ], onstatechange: function(v) { $("#dir-rating-range").val(v); } });</script>';
|
||||
var html = '<form id="ratings_form" action="prate" method="post"><input type="hidden" name="target" value="' + hash + '" /><div class="rating-desc">' + aStr.rating_desc + '</div><input id="dir-rating-range" class="directory-slider" type="text" value="' + ratingVal + '" name="rating" style="display: none;" /><div class="rating-text-label">' + aStr.rating_text + '<input type="text" name="rating_text" class="directory-rating-text" value="' + ratingText + '" /><br><input name="submit" class="directory-rating-submit" type="submit" value="' + aStr.submit + '" onclick="postRatings(); return false;"></form><div class="clear"></div><script>$("#dir-rating-range").jRange({ from: -10, to: 10, step: 1, showLabels: false, showScale: true, scale: [ "-10","-5","0","5","10" ], onstatechange: function(v) { $("#dir-rating-range").val(v); } });</script>';
|
||||
|
||||
$.colorbox({maxwidth: "50%", maxHeight: "50%", html: html, close: 'X' });
|
||||
currentHash = hash;
|
||||
}
|
||||
|
||||
function postRatings() {
|
||||
$.post('prate',$('#ratings_form').serialize(),function(data) {
|
||||
$.post('prate', $('#ratings_form').serialize(), function(data) {
|
||||
$.colorbox.remove();
|
||||
$('#edited-'+currentHash).show();
|
||||
},'json');
|
||||
}
|
||||
|
||||
$('#edited-' + currentHash).show();
|
||||
}, 'json');
|
||||
}
|
|
@ -1,52 +1,51 @@
|
|||
|
||||
/**
|
||||
* redbasic theme specific JavaScript
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
|
||||
// CSS3 calc() fallback (for unsupported browsers)
|
||||
$('body').append('<div id="css3-calc" style="width: 10px; width: calc(10px + 10px); display: none;"></div>');
|
||||
if( $('#css3-calc').width() == 10) {
|
||||
$(window).resize(function() {
|
||||
if($(window).width() < 767) {
|
||||
$('main').css('width', $(window).width() + 231 );
|
||||
} else {
|
||||
$('main').css('width', '100%' );
|
||||
}
|
||||
});
|
||||
}
|
||||
$('#css3-calc').remove(); // Remove the test element
|
||||
|
||||
$('#expand-aside').click(function() {
|
||||
$('#expand-aside-icon').toggleClass('icon-circle-arrow-right').toggleClass('icon-circle-arrow-left');
|
||||
$('main').toggleClass('region_1-on');
|
||||
});
|
||||
|
||||
if($('aside').length && $('aside').html().length == 0) {
|
||||
$('#expand-aside').hide();
|
||||
}
|
||||
|
||||
$('#expand-tabs').click(function() {
|
||||
if(!$('#tabs-collapse-1').hasClass('in')){
|
||||
$('html, body').animate({ scrollTop: 0 }, 'slow');
|
||||
// CSS3 calc() fallback (for unsupported browsers)
|
||||
$('body').append('<div id="css3-calc" style="width: 10px; width: calc(10px + 10px); display: none;"></div>');
|
||||
if( $('#css3-calc').width() == 10) {
|
||||
$(window).resize(function() {
|
||||
if($(window).width() < 767) {
|
||||
$('main').css('width', $(window).width() + 231 );
|
||||
} else {
|
||||
$('main').css('width', '100%' );
|
||||
}
|
||||
});
|
||||
}
|
||||
$('#css3-calc').remove(); // Remove the test element
|
||||
|
||||
$('#expand-aside').click(function() {
|
||||
$('#expand-aside-icon').toggleClass('icon-circle-arrow-right').toggleClass('icon-circle-arrow-left');
|
||||
$('main').toggleClass('region_1-on');
|
||||
});
|
||||
|
||||
if($('aside').length && $('aside').html().length === 0) {
|
||||
$('#expand-aside').hide();
|
||||
}
|
||||
|
||||
$('#expand-tabs').click(function() {
|
||||
if(!$('#tabs-collapse-1').hasClass('in')){
|
||||
$('html, body').animate({ scrollTop: 0 }, 'slow');
|
||||
}
|
||||
$('#expand-tabs-icon').toggleClass('icon-circle-arrow-down').toggleClass('icon-circle-arrow-up');
|
||||
});
|
||||
|
||||
if($('#tabs-collapse-1').length === 0) {
|
||||
$('#expand-tabs').hide();
|
||||
}
|
||||
$('#expand-tabs-icon').toggleClass('icon-circle-arrow-down').toggleClass('icon-circle-arrow-up');
|
||||
});
|
||||
|
||||
if($('#tabs-collapse-1').length == 0) {
|
||||
$('#expand-tabs').hide();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
var doctitle = document.title;
|
||||
function checkNotify() {
|
||||
var notifyUpdateElem = document.getElementById('notify-update');
|
||||
if(notifyUpdateElem !== null) {
|
||||
if(notifyUpdateElem.innerHTML != "")
|
||||
document.title = "("+notifyUpdateElem.innerHTML+") " + doctitle;
|
||||
else
|
||||
document.title = doctitle;
|
||||
if(notifyUpdateElem.innerHTML !== "")
|
||||
document.title = "(" + notifyUpdateElem.innerHTML + ") " + doctitle;
|
||||
else
|
||||
document.title = doctitle;
|
||||
}
|
||||
};
|
||||
}
|
||||
setInterval(function () {checkNotify();}, 10 * 1000);
|
||||
});
|
||||
});
|
Loading…
Reference in a new issue