
dale at svn
Jul 17, 2008, 11:46 PM
Views: 46
Permalink
|
|
SVN: [37811] branches/MetavidWiki-exp/MetavidWiki
|
|
Revision: 37811 Author: dale Date: 2008-07-18 06:46:35 +0000 (Fri, 18 Jul 2008) Log Message: ----------- updated semantic helpers for mvd Edit Modified Paths: -------------- branches/MetavidWiki-exp/MetavidWiki/includes/MV_GlobalFunctions.php branches/MetavidWiki-exp/MetavidWiki/includes/MV_Hooks.php branches/MetavidWiki-exp/MetavidWiki/includes/MV_MetavidInterface/MV_Overlay.php branches/MetavidWiki-exp/MetavidWiki/includes/MV_Settings.php branches/MetavidWiki-exp/MetavidWiki/includes/MV_Title.php branches/MetavidWiki-exp/MetavidWiki/skins/mv_stream.js Modified: branches/MetavidWiki-exp/MetavidWiki/includes/MV_GlobalFunctions.php =================================================================== --- branches/MetavidWiki-exp/MetavidWiki/includes/MV_GlobalFunctions.php 2008-07-18 03:59:49 UTC (rev 37810) +++ branches/MetavidWiki-exp/MetavidWiki/includes/MV_GlobalFunctions.php 2008-07-18 06:46:35 UTC (rev 37811) @@ -382,6 +382,8 @@ $wgAjaxExportList[] = 'mv_auto_complete_all'; $wgAjaxExportList[] = 'mv_auto_complete_person'; $wgAjaxExportList[] = 'mv_auto_complete_stream_name'; +$wgAjaxExportList[] = 'mv_helpers_auto_complete'; + $wgAjaxExportList[] = 'mv_disp_mvd'; $wgAjaxExportList[] = 'mv_add_disp'; Modified: branches/MetavidWiki-exp/MetavidWiki/includes/MV_Hooks.php =================================================================== --- branches/MetavidWiki-exp/MetavidWiki/includes/MV_Hooks.php 2008-07-18 03:59:49 UTC (rev 37810) +++ branches/MetavidWiki-exp/MetavidWiki/includes/MV_Hooks.php 2008-07-18 06:46:35 UTC (rev 37811) @@ -205,6 +205,22 @@ $MV_Overlay = new MV_Overlay(); return $MV_Overlay->get_edit_disp($titleKey, $mvd_id); } + /* genneral autocomplete */ + function mv_helpers_auto_complete($val=null){ + global $mvMetaDataHelpers,$wgRequest; + $property = $wgRequest->getVal('prop_name'); + switch($property){ + case 'Speech_by': + return MV_SpecialMediaSearch::auto_complete_person($val); + break; + case 'Bill': + return MV_SpecialMediaSearch::auto_complete_category('Bill', $val); + break; + case 'category': + return MV_SpecialMediaSearch::auto_complete_search_categories($val); + break; + } + } function mv_auto_complete_person($val=null){ return MV_SpecialMediaSearch::auto_complete_person($val); } Modified: branches/MetavidWiki-exp/MetavidWiki/includes/MV_MetavidInterface/MV_Overlay.php =================================================================== --- branches/MetavidWiki-exp/MetavidWiki/includes/MV_MetavidInterface/MV_Overlay.php 2008-07-18 03:59:49 UTC (rev 37810) +++ branches/MetavidWiki-exp/MetavidWiki/includes/MV_MetavidInterface/MV_Overlay.php 2008-07-18 06:46:35 UTC (rev 37811) @@ -439,8 +439,8 @@ $metaData=array('prop'=>array(), 'categories'=>array()); //just get msg and basic div layout: \ //css layout of forms was F*@#!!! withing me for some reason so yay table :P - $o.='<span class="mv_basic_edit"><a href="#" onClick="mv_mvd_advs_toggle('.$mvd_id.')">'.wfMsg('mv_advanced_edit').'</a></span> - <span style="display:none" class="mv_advanced_edit"><a href="#" onClick="mv_mvd_advs_toggle('.$mvd_id.')">'.wfMsg('mv_basic_edit').'</a></span>'; + $o.='<span class="mv_basic_edit"><a href="#" onClick="mv_mvd_advs_toggle('.$mvd_id.');return false;">'.wfMsg('mv_advanced_edit').'</a></span> + <span style="display:none" class="mv_advanced_edit"><a href="#" onClick="mv_mvd_advs_toggle('.$mvd_id.');return false;">'.wfMsg('mv_basic_edit').'</a></span>'; $o.='<input type="hidden" id="adv_basic_'.$mvd_id.'" name="adv_basic" value="basic">'; $o.='<table class="mv_basic_edit mv_dataHelpers" id="mv_dataHelpers_'.$mvd_id.'">'; @@ -452,9 +452,11 @@ $o.= "<span class=\"error\">Error:</span>". wfMsg('mvMVDFormat'); return $o; } - $metaData = $mvTitle->getMetaData(); + $metaData = $mvTitle->getMetaData(); } foreach($mvMetaDataHelpers[strtolower($mvd_type)] as $prop=>$ac_index){ + //normalize the + $prop=str_replace(' ', '_', $prop); //set existing "value" if(isset($metaData['prop'][$prop])){ $val = $metaData['prop'][$prop]; @@ -463,7 +465,9 @@ $swmTitle = Title::newFromText((string)$prop, SMW_NS_PROPERTY); if($swmTitle->exists()){ $help_img =$sk->makeKnownLinkObj($swmTitle, '<img src="'.$mvgScriptPath.'/skins/images/help_icon.png">'); - $o.= "<tr><td><label>".$swmTitle->getText().":</label></td><td><input class=\"mv_anno_ac\" size=\"14\" name=\"$prop\" type=\"text\" value=\"$val\"></td></tr>"; + $o.= "<tr><td><label>".$swmTitle->getText().":</label></td><td><input class=\"mv_anno_ac_{$mvd_id}\" size=\"40\" name=\"{$prop}\" type=\"text\" value=\"$val\"> + <div class=\"autocomplete\" id=\"{$prop}_choices_{$mvd_id}\" style=\"display: none;\"/> + </td></tr>"; }else{ print '<span class="error">Error:</span>'.$sk->makeKnownLinkObj($swmTitle, $swmTitle->getText()) . ' does not exist<br>' ; } @@ -484,10 +488,13 @@ $i++; } $o.='</tr>'; - $o.= "<tr><td><label for=\"new_cat\">".wfMsg('mv_add_category').":</label></td><td><input size=\"14\" class=\"mv_anno_ac\" name=\"new_cat\" type=\"text\"></td></tr>"; + $o.= "<tr><td><label for=\"category\">".wfMsg('mv_add_category').":</label></td><td><input size=\"40\" class=\"mv_anno_ac_{$mvd_id}\" name=\"category\" type=\"text\"> + <div class=\"autocomplete\" id=\"category_choices_{$mvd_id}\" style=\"display: none;\"/></td></tr>"; } //output a short desc field (the text with striped semantic values)... - $o.='<tr><td>'.wfMsg("mv_basic_text_desc").'</td></td><textarea name="basic_wpTextbox" rows="2" cols="14"></textarea></td></tr>'; + $o.='<tr><td>'.wfMsg("mv_basic_text_desc").'</td></td><textarea name="basic_wpTextbox" rows="2" cols="40">'; + if(isset($metaData['striped_text']))$o.=$metaData['striped_text']; + $o.='</textarea></td></tr>'; } //foreach($mvMetaDataHelpers[ Modified: branches/MetavidWiki-exp/MetavidWiki/includes/MV_Settings.php =================================================================== --- branches/MetavidWiki-exp/MetavidWiki/includes/MV_Settings.php 2008-07-18 03:59:49 UTC (rev 37810) +++ branches/MetavidWiki-exp/MetavidWiki/includes/MV_Settings.php 2008-07-18 06:46:35 UTC (rev 37811) @@ -6,7 +6,7 @@ /* * your settings overrides here: */ -$mvExternalImages = true; +$mvExternalImages = false; $mvExternalImgServerPath = 'http://metavid.ucsc.edu/wiki/index.php'; ?> \ No newline at end of file Modified: branches/MetavidWiki-exp/MetavidWiki/includes/MV_Title.php =================================================================== --- branches/MetavidWiki-exp/MetavidWiki/includes/MV_Title.php 2008-07-18 03:59:49 UTC (rev 37810) +++ branches/MetavidWiki-exp/MetavidWiki/includes/MV_Title.php 2008-07-18 06:46:35 UTC (rev 37811) @@ -237,13 +237,22 @@ * (does not grab overlaping metadata) * (semenatic properities and categories) * */ - function getMetaData(){ + function getMetaData($normalized_prop_name=true){ global $wgUser, $wgParser; $article = new Article($this); $retAry = array(); $text = $article->getContent(); - $retAry['prop'] = MV_Overlay::get_and_strip_semantic_tags($text); - + //@@todo should use semanticMediaWiki api here + $tmpProp = MV_Overlay::get_and_strip_semantic_tags($text); + //strip categories + $retAry['striped_text']=preg_replace('/\[\[[^:]+:[^\]]+\]\]/','',$text); + if($normalized_prop_name){ + foreach($tmpProp as $pkey=>$pval){ + $retAry['prop'][str_replace(' ','_',$pkey)]=$pval; + } + }else{ + $retAry['prop']=$tmpProp; + } $sk =& $wgUser->getSkin(); //run via parser to add in Category info: Modified: branches/MetavidWiki-exp/MetavidWiki/skins/mv_stream.js =================================================================== --- branches/MetavidWiki-exp/MetavidWiki/skins/mv_stream.js 2008-07-18 03:59:49 UTC (rev 37810) +++ branches/MetavidWiki-exp/MetavidWiki/skins/mv_stream.js 2008-07-18 06:46:35 UTC (rev 37811) @@ -306,9 +306,13 @@ alert(gMsg['mv_open_edit']); return ; } + var title_parts = titleKey.split(':'); + var mvd_type = title_parts[0].toLowerCase(); + mv_open_edit_mvd=mvd_id; //set sajax to do a GET request sajax_request_type='GET'; + sajax_do_call( "mv_edit_disp", [titleKey, mvd_id], f ); $j('#mv_fcontent_'+mvd_id).html(global_loading_txt); //handle the response: @@ -318,10 +322,23 @@ $j('#mv_fcontent_'+mvd_id).html( result ); //add javascript hooks add_autocomplete(mvd_id); - add_adjust_hooks(mvd_id); + add_adjust_hooks(mvd_id); + + + //if mvd_type==anno_en //add buttons mwSetupToolbar(); mwEditButtons = []; //empty edit buttons + + if(mvd_type=='anno_en'){ + //add mv_helpers autocompletes + add_mv_helpers_ac(mvd_id); + if($j('#adv_basic_'+mvd_id).val()=='basic'){ + $j('.mv_advanced_edit').hide(); + }else{ + $j('.mv_basic_edit').hide(); + } + } } }/* interface ajax actions */ function mv_disp_mvd(titleKey, mvd_id){ @@ -404,20 +421,40 @@ //} mv_lock_vid_updates=false; } +/* + * adds autocomplete to semantic forms + * with special case for speech by + */ +function add_mv_helpers_ac(mvd_id){ + $j('.mv_anno_ac_'+mvd_id).each(function(i, input_item){ + var prop_name =$j(input_item).attr('name'); + js_log('add ac for: '+ prop_name); + uri = wgServer + ((wgServer == null) ? (wgScriptPath + "/index.php") : wgScript); + $j(input_item).autocomplete( + uri, + { + autoFill:true, + onItemSelect:function(v){ + js_log('selected:' + v.innerHTML ); + //update the image: + //js_log("img src: " + $j(v).children('img').attr('src')); + //'mv_edit_im_'+mvd_id + $j('#mv_edit_im_'+mvd_id).attr('src', $j(v).children('img').attr('src')); + }, + formatItem:function(row){ + return '<img width="44" src="'+ row[2] + '">'+row[1]; + }, + matchSubset:0, + extraParams:{action:'ajax',rs:'mv_helpers_auto_complete',prop_name:prop_name}, + paramName:'rsargs[]', + resultElem:'#'+prop_name+'_choices_'+mvd_id + }); + }); +} -//update the slider on user input: -//@@TODO fix bug in scriptaculus so handles are registered and can use this function: -/*function mv_update_slider(input, mvd_id){ - //get seconds from input - var sec = ntp2seconds(input.value); - var base_offset = mv_sliders[mvd_id]['base_offset']; - var track_dur = mv_sliders[mvd_id]['track_dur']; - var handle_id = (input.id=='mv_start_hr_'+mvd_id)?'handle1_'+mvd_id:'handle2_'+mvd_id; - js_log('set slider:' + handle_id +' '+ ((sec-base_offset)/track_dur)); - var slider_start=0; - var slider_end =((sec-base_offset)/track_dur); - mv_sliders[mvd_id].setValue( ((sec-base_offset)/track_dur), handle_id ); -}*/ +/* + * @@TODO add_autocomplete should be merged with generalized mv_helpers_ac + */ function add_autocomplete(mvd_id){ //make sure the target elements exist: //if(!document.getElementById("auto_comp_"+mvd_id))return ; @@ -511,9 +548,21 @@ }); post_vars['title']=titleKey; post_vars['mvd_id'] = mvd_id; - sajax_request_type='POST'; + var setHtmlId ='#mv_fcontent_'+mvd_id; //@@todo switch over to jquery ajax + /*uri = wgServer + + ((wgServer == null) ? (wgScriptPath + "/index.php") : wgScript) + + "?action=ajax&rs=mv_remove_mvd"; + $j.ajax({ + url:uri, + data:post_vars, + error:function(error){}, + success:function(result){} + } + ); + }*/ + sajax_request_type='POST'; mv_sajax_do_call('mv_remove_mvd',args, f, post_vars); js_log('did request'); function f( request ) { _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS[at]lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs
|