mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-08-10 10:42:59 +02:00
[LocalFiles Editor]
Update editarea to 0.8.2. Remove CSS tab. Fix jQuery path. git-svn-id: http://piwigo.org/svn/trunk@5160 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
EditArea.prototype.show_search = function(){
|
||||
if(_$("area_search_replace").style.visibility=="visible"){
|
||||
this.hidden_search();
|
||||
}else{
|
||||
this.open_inline_popup("area_search_replace");
|
||||
var text= this.area_get_selection();
|
||||
var search= text.split("\n")[0];
|
||||
_$("area_search").value= search;
|
||||
_$("area_search").focus();
|
||||
}
|
||||
};
|
||||
|
||||
EditArea.prototype.hidden_search= function(){
|
||||
/*_$("area_search_replace").style.visibility="hidden";
|
||||
this.textarea.focus();
|
||||
var icon= _$("search");
|
||||
setAttribute(icon, "class", getAttribute(icon, "class").replace(/ selected/g, "") );*/
|
||||
this.close_inline_popup("area_search_replace");
|
||||
};
|
||||
|
||||
EditArea.prototype.area_search= function(mode){
|
||||
|
||||
if(!mode)
|
||||
mode="search";
|
||||
_$("area_search_msg").innerHTML="";
|
||||
var search=_$("area_search").value;
|
||||
|
||||
this.textarea.focus();
|
||||
this.textarea.textareaFocused=true;
|
||||
|
||||
var infos= this.get_selection_infos();
|
||||
var start= infos["selectionStart"];
|
||||
var pos=-1;
|
||||
var pos_begin=-1;
|
||||
var length=search.length;
|
||||
|
||||
if(_$("area_search_replace").style.visibility!="visible"){
|
||||
this.show_search();
|
||||
return;
|
||||
}
|
||||
if(search.length==0){
|
||||
_$("area_search_msg").innerHTML=this.get_translation("search_field_empty");
|
||||
return;
|
||||
}
|
||||
// advance to the next occurence if no text selected
|
||||
if(mode!="replace" ){
|
||||
if(_$("area_search_reg_exp").checked)
|
||||
start++;
|
||||
else
|
||||
start+= search.length;
|
||||
}
|
||||
|
||||
//search
|
||||
if(_$("area_search_reg_exp").checked){
|
||||
// regexp search
|
||||
var opt="m";
|
||||
if(!_$("area_search_match_case").checked)
|
||||
opt+="i";
|
||||
var reg= new RegExp(search, opt);
|
||||
pos= infos["full_text"].substr(start).search(reg);
|
||||
pos_begin= infos["full_text"].search(reg);
|
||||
if(pos!=-1){
|
||||
pos+=start;
|
||||
length=infos["full_text"].substr(start).match(reg)[0].length;
|
||||
}else if(pos_begin!=-1){
|
||||
length=infos["full_text"].match(reg)[0].length;
|
||||
}
|
||||
}else{
|
||||
if(_$("area_search_match_case").checked){
|
||||
pos= infos["full_text"].indexOf(search, start);
|
||||
pos_begin= infos["full_text"].indexOf(search);
|
||||
}else{
|
||||
pos= infos["full_text"].toLowerCase().indexOf(search.toLowerCase(), start);
|
||||
pos_begin= infos["full_text"].toLowerCase().indexOf(search.toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
// interpret result
|
||||
if(pos==-1 && pos_begin==-1){
|
||||
_$("area_search_msg").innerHTML="<strong>"+search+"</strong> "+this.get_translation("not_found");
|
||||
return;
|
||||
}else if(pos==-1 && pos_begin != -1){
|
||||
begin= pos_begin;
|
||||
_$("area_search_msg").innerHTML=this.get_translation("restart_search_at_begin");
|
||||
}else
|
||||
begin= pos;
|
||||
|
||||
//_$("area_search_msg").innerHTML+="<strong>"+search+"</strong> found at "+begin+" strat at "+start+" pos "+pos+" curs"+ infos["indexOfCursor"]+".";
|
||||
if(mode=="replace" && pos==infos["indexOfCursor"]){
|
||||
var replace= _$("area_replace").value;
|
||||
var new_text="";
|
||||
if(_$("area_search_reg_exp").checked){
|
||||
var opt="m";
|
||||
if(!_$("area_search_match_case").checked)
|
||||
opt+="i";
|
||||
var reg= new RegExp(search, opt);
|
||||
new_text= infos["full_text"].substr(0, begin) + infos["full_text"].substr(start).replace(reg, replace);
|
||||
}else{
|
||||
new_text= infos["full_text"].substr(0, begin) + replace + infos["full_text"].substr(begin + length);
|
||||
}
|
||||
this.textarea.value=new_text;
|
||||
this.area_select(begin, length);
|
||||
this.area_search();
|
||||
}else
|
||||
this.area_select(begin, length);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
EditArea.prototype.area_replace= function(){
|
||||
this.area_search("replace");
|
||||
};
|
||||
|
||||
EditArea.prototype.area_replace_all= function(){
|
||||
/* this.area_select(0, 0);
|
||||
_$("area_search_msg").innerHTML="";
|
||||
while(_$("area_search_msg").innerHTML==""){
|
||||
this.area_replace();
|
||||
}*/
|
||||
|
||||
var base_text= this.textarea.value;
|
||||
var search= _$("area_search").value;
|
||||
var replace= _$("area_replace").value;
|
||||
if(search.length==0){
|
||||
_$("area_search_msg").innerHTML=this.get_translation("search_field_empty");
|
||||
return ;
|
||||
}
|
||||
|
||||
var new_text="";
|
||||
var nb_change=0;
|
||||
if(_$("area_search_reg_exp").checked){
|
||||
// regExp
|
||||
var opt="mg";
|
||||
if(!_$("area_search_match_case").checked)
|
||||
opt+="i";
|
||||
var reg= new RegExp(search, opt);
|
||||
nb_change= infos["full_text"].match(reg).length;
|
||||
new_text= infos["full_text"].replace(reg, replace);
|
||||
|
||||
}else{
|
||||
|
||||
if(_$("area_search_match_case").checked){
|
||||
var tmp_tab=base_text.split(search);
|
||||
nb_change= tmp_tab.length -1 ;
|
||||
new_text= tmp_tab.join(replace);
|
||||
}else{
|
||||
// case insensitive
|
||||
var lower_value=base_text.toLowerCase();
|
||||
var lower_search=search.toLowerCase();
|
||||
|
||||
var start=0;
|
||||
var pos= lower_value.indexOf(lower_search);
|
||||
while(pos!=-1){
|
||||
nb_change++;
|
||||
new_text+= this.textarea.value.substring(start , pos)+replace;
|
||||
start=pos+ search.length;
|
||||
pos= lower_value.indexOf(lower_search, pos+1);
|
||||
}
|
||||
new_text+= this.textarea.value.substring(start);
|
||||
}
|
||||
}
|
||||
if(new_text==base_text){
|
||||
_$("area_search_msg").innerHTML="<strong>"+search+"</strong> "+this.get_translation("not_found");
|
||||
}else{
|
||||
this.textarea.value= new_text;
|
||||
_$("area_search_msg").innerHTML="<strong>"+nb_change+"</strong> "+this.get_translation("occurrence_replaced");
|
||||
// firefox and opera doesn't manage with the focus if it's done directly
|
||||
//editArea.textarea.focus();editArea.textarea.textareaFocused=true;
|
||||
setTimeout("editArea.textarea.focus();editArea.textarea.textareaFocused=true;", 100);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user