Skip to content

Commit

Permalink
Final authentication fixes, including moving key-finding up to a high…
Browse files Browse the repository at this point in the history
…er level
  • Loading branch information
scc committed Sep 18, 2008
1 parent 50fd8da commit 0401971
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 63 deletions.
38 changes: 2 additions & 36 deletions plugins/Ajax/htdocs/images/slash.sfnet.js
Expand Up @@ -13,42 +13,12 @@ function $dom( id ) {

var kAuthenticated=true, kNotAuthenticated=false;

var re_key = /sd-key-(.*)/;
var root_d2_selector = '#sd-d2-root';
var root_tagui_selector = '.sd-tagui-root';
var sfnet_prefix = 'sfnet';



function sfnet_canonical_project_url( url ){
url = url || window.location.href;
var project_name, url = url.split(/\/+/);
if ( ! url[0] ) { url.shift(); }
if ( /:$/.test(url[0]) ) { url.shift(); }
if ( /\.net$/.test(url[0]) ) { url.shift(); }
if ( url[0] === 'projects' ) {
return "http://sourceforge.net/projects/" + url[1];
}
}

function get_sd_key( elem ){
var key = {}, $key = $(elem).find('[class*=sd-key-]:first');
if ( $key.length ) {
key.key = $key.text();
$.each(Slash.Util.qw($key.attr('class')), function( cn ){
var M = re_key.exec(cn);
if ( M ) {
key.key_type = M[1];
return false;
}
});
} else if ( (key.key = sfnet_canonical_project_url()) ) {
key.key_type = "url";
}

return key;
}

function simple_tagui_markup( prefix ){
prefix = prefix ? prefix + '-' : '';
return '<div class="' + prefix + 'basic-tagui">' +
Expand All @@ -74,11 +44,7 @@ function install_tagui( $roots, authenticated ){
}).
tagui__init().
tagui_markup__auto_refresh_styles().
tagui_server({
id: function( s_elem ){
return get_sd_key(s_elem).key;
}
}).
tagui_server().
tagui_server__fetch_tags();

if ( authenticated ) {
Expand All @@ -104,7 +70,7 @@ function install_tagui( $roots, authenticated ){
function install_d2( d2, authenticated ){
/* do something different if ! authenticated? */
d2.each(function(){
var key = get_sd_key(this);
var key = Slash.Util.find_reference_key(this);
if ( key.key_type === 'url' ) {
var inner_url = key.key;
//$(this).load('/slashdot/slashdot-it.pl?op=discuss&div=1&url='+encodeURI(inner_url));
Expand Down
35 changes: 12 additions & 23 deletions plugins/Ajax/htdocs/images/slash.tagui.js
Expand Up @@ -427,12 +427,6 @@ new Package({ named: 'Slash.TagUI.Server',
dataType: 'jsonp'
};
},
guess_id: function( s_elem ){
var M = /(\d+)$/.exec($(s_elem).attr('id'));
if ( M ) {
return M[1];
}
},
defaults: {
command_feedback: {
order: 'append',
Expand Down Expand Up @@ -466,29 +460,24 @@ new Package({ named: 'Slash.TagUI.Server',
options = options || {};
Broadcaster(s_elem);

var id = options.id || Server.guess_id(s_elem);
if ( if_fn(id) ) {
id = id.apply(s_elem, [s_elem]);
var key = options.key, key_type = options.key_type;
if ( if_fn(key) ) {
key = key.call(s_elem, s_elem);
} else if ( ! key ) {
var k = find_reference_key(s_elem);
key = k.key;
key_type = k.key_type;
}

$(s_elem).addClass('tag-server');
var ext = {};
if ( options.command_pipeline ) { ext.command_pipeline = options.command_pipeline; }
if ( options.defaults ) { ext.defaults = options.defaults; }
if ( if_defined(id) ) {
ext.id = id;
var defaults = {
request_data: {
id: id
}
};
if ( ! ext.defaults ) {
ext.defaults = defaults;
} else if ( ! ext.defaults.request_data ) {
ext.defaults.request_data = defaults.request_data;
} else if ( if_undefined(ext.defaults.request_data.id) ) {
ext.defaults.request_data.id = id;
}
if ( if_defined(key) ) {
if ( ! ext.defaults ) ext.defaults = { };
if ( ! ext.defaults.request_data ) ext.defaults.request_data = { };
ext.key = (ext.defaults.request_data.key = key);
ext.key_type = (ext.defaults.request_data.key_type = key_type);
}
return ext;
},
Expand Down
26 changes: 25 additions & 1 deletion plugins/Ajax/htdocs/images/slash.util.js
Expand Up @@ -214,6 +214,29 @@ function splice_string( s, offset, length, replacement ){
return s;
}

var re_key_class = /sd-key-(.*)/;
var re_key_id = /^([^-]+)-.*(\d+)$/;

function find_reference_key( elem ){
var M, key = {}, $key = $(elem).find('[class*=sd-key-]:first');
if ( $key.length ) {
key.key = $key.text();
$.each(Slash.Util.qw($key.attr('className')), function( i, cn ){
if ( (M = re_key_class.exec(cn)) ) {
key.key_type = M[1];
return false;
}
});
} else if ( (M = re_key_id.exec($(elem).attr('id'))) ) {
key.key_type = M[1];
key.key = M[2];
} else if ( (key.key = window.location.href) ) {
key.key_type = "url";
}

return key;
}

function ensure_namespace( path ){
if ( path.join ) {
path = path.slice(0);
Expand Down Expand Up @@ -432,11 +455,12 @@ Package({ named: 'Slash.Util',
// if_array_like: if_inherits_array_iteration,
clone: clone,
splice_string: splice_string,
find_reference_key: find_reference_key,
ensure_namespace: ensure_namespace
},
exports: 'if_defined if_undefined if_defined_false if_object if_fn ' +
'if_string_like ' +
'clone splice_string ' +
'clone splice_string find_reference_key ' +
'Package if_inherits qw'
});

Expand Down
7 changes: 4 additions & 3 deletions plugins/Ajax/htdocs/images/sourceforge-tagui-test.html
Expand Up @@ -6,11 +6,11 @@
<script type="application/javascript" src="http://images.slashdot.org/cdn/sfnet-all-minified.js"></script>
<!--
<link type="text/css" rel="stylesheet" href="http://images.slashdot.org/cdn/sfnet-all-tidied.css">
<!-- jQuery + plug-ins -->
<//!-- jQuery + plug-ins -//->
<script type="application/javascript" src="jquery/jquery-1.2.6.js"></script>
<script type="application/javascript" src="jquery/jquery.metadata.js"></script>
<!-- our stuff -->
<//!-- our stuff -//->
<script type="application/javascript" src="slash.util.js"></script>
<script type="application/javascript" src="slash.sfnet.js"></script>
<script type="application/javascript" src="slash.tagui.js"></script>
Expand All @@ -31,7 +31,8 @@ <h1>SourceForge TagUI Test</h1>
</p>

<div class="sd-tagui-root">
<span class="sd-key-firehose-id">1153007</span>
<span class="sd-key-url">http://cmdrtaco.net/</span>
<!-- span class="sd-key-firehose-id">1153007</span -->
<h3>Spore Project</h3>
<p>
Here's a simulated project entry.
Expand Down

0 comments on commit 0401971

Please sign in to comment.