티스토리 뷰

javascript

localStorage javascript

devlinker 2017. 7. 21. 14:08

/**
 * Toc parameter setting...
 * **/


function setTocParams(){
 var jsonToc = $('#toc').val(); 
 //addTocVal('toc', jsonToc);
 //$('#toc').remove();
 
 var parsedToc = jQuery.parseJSON(jsonToc);
 $.each(parsedToc,function(key,value) {
  console.log('key:'+key+', value:'+JSON.stringify(value)); 
  addTocVal(key,JSON.stringify(value));
  
 });
}


function addTocVal(item, itemVal){
 localStorage.setItem(item,itemVal);
}

function getTocVal(item){
 return localStorage.getItem(item);
}

//for vol, count
function getTocValSub(item,subItem){
 var itemVal = localStorage.getItem(item);
 var parsedItemVal = JSON.parse(itemVal, function (key, value) {
   return value;   
 });
 return parsedItemVal[subItem];
 
}

 

function setTestBookMark(){
 var bookmarklist = {};
 var bookmark={};
 var marknum = '000';
 var markval= '{"param_no":"CNTS-00052461629","curVol":"1","page":30,"srcpath":"\\\\192.168.100.40/ImgNcldbY/2007/KJU200606112","vols_count":256,"title":"여기까지","msg":"여기까지 읽음"}';

 
 markval = markval.replace(/\\/g, "");
 
 bookmark[marknum]=markval;
 
 bookmarklist['bookmarklist']=bookmark;
 
 $.each(bookmarklist,function(key,value) {
  console.log('key:'+key+', value:'+value); 
  $.each(value,function(subkey,subvalue) {
   console.log('subkey:'+subkey+', subvalue:'+subvalue); 
   
  });
 });
 
 localStorage.setItem('bookmarklist',JSON.stringify(bookmark)); //save object bookmark

}

 

//북마크 리스트
function displayBookMark(){  
 $('#bookmark-list').html(''); //목록 초기화
 var booklist = localStorage.getItem('bookmarklist');
 $.each(JSON.parse(booklist),function(key,value) {
   console.log('key:'+key+', value:'+value); 
   $.each(JSON.parse(value), function(subkey,subvalue) {
    //console.log('subkey:'+subkey+', subvalue:'+subvalue);    
   });
   
   var book =JSON.parse(value);   
   var volpath= book.curVol=='0'?"/":"/vol"+book.curVol+"/";  
   var thumbpath = "/thumb/"+book.param_no+volpath;
   var thumbno = "00000000"+book.page;       
       thumbno = (thumbno).substring(thumbno.length - 8, thumbno.length);
      var src = thumbpath+thumbno+".png";
   
   
   var bookhtml= '<li><button type="button" class="btn-boomark-del" onclick="delBookMark();">삭제</button>';
    bookhtml += '<a href="#" onclick=\"loadVol(\''+book.param_no+'\',\''+book.curVol+'\','+'\'\\\\'+book.srcpath+'\','+book.vols_count+','+book.page+');\">';
    bookhtml +=   '<div class="thumb"><img src="'+src+'"></div>';
    bookhtml +=  '<div class="context">';
    bookhtml +=  '<span class="vol">'+book.curVol+'</span>';
    bookhtml +=  '<span class="pg">'+book.page+'</span>';
    bookhtml +=  '<p class="tit">'+book.title+'</p>';
    bookhtml +=  '<p class="text">'+book.msg+'</p>';
    bookhtml +=   '</div>';
    bookhtml += '</a>';
    bookhtml += '</li>';
    
   $('#bookmark-list').append(bookhtml);
   
  });
 
}

var bookmarkNo=0;
function addBookMark(param_no,curVol,page,srcpath,vols_count,title,msg){ 
 console.log('addBookMark..'); 
 
 //new bookmark
 var bookmark={};
 
 //목록 불러오기
 var booklist = JSON.parse(localStorage.getItem('bookmarklist')); 
 //북마크번호 (100개)
 var marknum = '00'+(++bookmarkNo);
     marknum = (marknum).substring(marknum.length - 3, marknum.length);
    
    var markval= '{"param_no":"CNTS-00052461629","curVol":"1","page":30,"srcpath":"\\\\192.168.100.40/ImgNcldbY/2007/KJU200606112","vols_count":256,"title":"여기까지","msg":"여기까지 읽음"}';
 markval = markval.replace(/\\/g, "");
 
 booklist[marknum]=markval;  //marknum으로 추가됨.
 //bookmarklist['bookmarklist']=bookmark;  //추가 후 같은 이름으로 저장
 
/* $.each(bookmarklist,function(key,value) {
  console.log('key:'+key+', value:'+value); 
  $.each(value,function(subkey,subvalue) {
   console.log('subkey:'+subkey+', subvalue:'+subvalue); 
   
  });
 });*/
 
 localStorage.setItem('bookmarklist',JSON.stringify(booklist)); //save object bookmark 
 displayBookMark();
}

function delBookMark(book_no){ 
 console.log(book_no);
 displayBookMark();
}

 


function loadView(vol_no,vol_pages,start_page){  
 var viewer = localStorage.getItem('thumbList');
 
 initImgSizeRate(vol_no,vol_pages,start_page);
}

//다권본 volume & page 이동
function loadVol(control_no,parm_vol,toc_path,vol_pages,start_page){ 
 
 if(curVol == parm_vol){
  $(".magazine").turn("page", start_page);
 }else{
  //init magazine
  if ( $( '#magazine' ).turn( 'is' ) ) {
         $( '#magazine' ).turn( 'destroy' );
         $('#magazine').html('');
         $( window ).unbind( 'keydown' );
  }
  
  //init thumbnail
  $('#thumbList').html('');  
  /*generateThumbnail(getTocVal('id'),vol_no,getTocVal('tocPath')); //썸네일생성
  generateThumbHtml(getTocVal('id'),vol_no,Number(vol_pages));   //썸네일html생성
  updateThumbSrc(getTocVal('id'),vol_no);  */
  generateThumbnail(control_no,parm_vol,toc_path); //썸네일생성  
  generateThumbHtml(vol_pages);   //썸네일html생성
  updateThumbSrc(control_no,parm_vol); 
 
  curVol = parm_vol; //현재볼륨 설정
  
  
  setTimeout(function(){
   //thumbnail lightSlider 썸네일 슬라이더 설정
   thumbSlider.refresh();  
    
   initImgSizeRate(parm_vol,vol_pages,start_page);   
   
  }, 2000);
  
 }
 
}

//thumbnail lazy-loading
function layzyloading(vol_pages,start_page){
 var control_no = objInfo.cno;
 var vol = curVol;
 var volpath= vol=='0'?"/":"/vol"+vol+"/";
 //alert(volpath);
 var thumbpath = "/thumb/"+control_no+volpath;
 var spage=0;
 var epage=10;
 if(start_page>10){
  spage=start_page-10;
  if(vol_pages>start_page+10){
   epage=start_page+10   
  }else{
   epage=vol_pages;
  }
 }
  
 for(var i=spage;i<epage;i++){
  var thumbno = "00000000"+i;       
     thumbno = (thumbno).substring(thumbno.length - 8, thumbno.length);
      var src = thumbpath+thumbno+".png";
      $('#thumb'+page).attr("src",src);
 }
 
}

//thumbnail src update
function updateThumbSrc(control_no, vol){
 var volpath= vol=='0'?"/":"/vol"+vol+"/";
 //alert(volpath);
 var thumbpath = "/thumb/"+control_no+volpath;
 $("#thumbList > li > a > div > img").each(function(index, item){
  setTimeout(function(){
   var thumbno = "00000000"+(index+1);       
         thumbno = (thumbno).substring(thumbno.length - 8, thumbno.length);
          var src = thumbpath+thumbno+".png";
          $(item).attr("src",src);
  }, 1500+index*20);      
 });
}

function generateThumbHtml(vol_pages){
 //alert(vol_pages+1);
 var thumbHtml = '';
 for(var i=1; i<vol_pages+1;i++){
  thumbHtml +='<li>';
  thumbHtml +=' <a href="#" class="item" onclick="goPage('+i+')">';
  thumbHtml +='  <div class="thumb_img"><img id="thumb'+i+'" src="/viewer/images/ajax-loader.gif" alt="페이지번호"/></div>';
  thumbHtml +='  <div class="pageDisplay"><span class="pageNum">'+i+'</span></div>';
  thumbHtml +='</a>';
  thumbHtml +='</li>'; 
 }
 
 //alert(thumbList); 
 $('#thumbList').html(thumbHtml);
}


function generateThumbnail(control_no, trg_vol,tocPath){
 var mkUrl = "/nlmivs/thumb/imgMagick.jsp";
 var formdata = {cno:control_no,vol:trg_vol,srcpath:tocPath};
 console.log(formdata);
 $.ajax({
  url : mkUrl,
  method: "POST",
  async: false,
  data: formdata  
 }).done(function(result) {});
 
}

 

function showTocLog(){
 var toc = localStorage.getItem('toc');
 console.log(toc); 
}

'javascript' 카테고리의 다른 글

[Javascript] json length object add  (0) 2017.07.18
댓글