2017-10-14 6 views
0

나는 이벤트를 가지고있는 매일 전체 캘린더에 moreLink를 추가하려고 시도하고 있으며 더 많은 링크에서 그 날 모든 이벤트를 강제로 표시하고 싶습니다!dayCell에서 사용 가능한 공간에 관계없이 팝업에서 모든 이벤트를 표시하는 moreLink를 추가 할 수 있습니까?

이것은 이벤트의 제목이 매우 길고 타블렛이나 전화 화면에 맞지 않기 때문에 내가 선택한 solutin입니다!

지금까지 computeRowLevelLimit 함수가 false를 반환했기 때문에 unsuccesfull은 하나의 이벤트가 발생했습니다!

내가 나에게 도움이 될만한 어떤 미친 아이디어에 열려 오전하지만 난 JS 최소한의 kowledge와 자바 dev에 오전 명심하고

+0

당신의 질문은 아래로 내려갈 것이다. 이것을 읽으십시오 - https://stackoverflow.com/help/how-to-ask – skwidbreth

+0

미안 해요 @skwidbreth 나는 필사적이었습니다 ...하지만, 마침내 그리고 더 중요한 것은 솔루션에 수업을 추가하는 그 자체로 해결됩니다. –

답변

0

가능하면 내가 presure에서 이후 전에서 문제를했다 몇 가지 추가 정보를 추가 그래서 내 자신의 손이 결단이다.

here i added the last else in order to be able to execute 2 methods when levelLimit is false 

limitRows: function (levelLimit) { 
      var rowStructs = this.eventRenderer.rowStructs || []; 
      var row; // row # 
      var rowLevelLimit; 

      for (row = 0; row < rowStructs.length; row++) { 
       this.unlimitRow(row); 

       if (!levelLimit) { 
        rowLevelLimit = false; 
       } 
       else if (typeof levelLimit === 'number') { 
        rowLevelLimit = levelLimit; 
       } 
       else { 
        rowLevelLimit = this.computeRowLevelLimit(row); 
       } 

       if (rowLevelLimit !== false) { 
        this.limitRow(row, rowLevelLimit); 
       } else { 
        this.unlimitRow2(row); 
        this.addMoreLink(row); 
       } 

      } 
     }, 

The added metod are: 
    - one for clearing the existing links 
    - second for adding new links - remember this is for days with only one event 

the methods are the following: 

unlimitRow2: function (row) { 
      var rowStruct = this.eventRenderer.rowStructs[row]; 

      var cellMatrix; 
      var oneDayCell; 
      cellMatrix = rowStruct.cellMatrix; 
      var _this = this; 

      for (i = 0; i < cellMatrix.length; i++) { 
       // console.log("celmatrix ", cellMatrix[i]); 
       oneDayCell = cellMatrix[i]; 
       console.log("outati", oneDayCell) 

       if (oneDayCell.moreEls) { 
        oneDayCell.moreEls.remove(); 
        oneDayCell.moreEls = null; 
       } 

       if (oneDayCell.limitedEls) { 
        oneDayCell.limitedEls.removeClass('fc-limited'); 
        oneDayCell.limitedEls = null; 
       } 
      } 
     }, 

and, 

addMoreLink: function (row) { 
      // console.log("inside addMoreMethod", row); 
      var rowStruct = this.eventRenderer.rowStructs[row]; 
      var cellMatrix; 
      var oneDayCell; 
      var coloana; 
      var nrCol; 
      var td, moreWrap, moreLink; 
      var moreNodes = []; 
      var segsBelow; 
      // console.log ("structura randului", rowStruct); 
      cellMatrix = rowStruct.cellMatrix; 
      var _this = this; 

      for (i = 0; i < cellMatrix.length; i++) { 
       // console.log("celmatrix ", cellMatrix[i]); 
       oneDayCell = cellMatrix[i]; 
       for (j = 0; j < oneDayCell.length; j++) { 
        coloana = oneDayCell[j]; 
        nrCol = j; 
        segsBelow = _this.getCellSegs(row, nrCol); 

        console.log($(coloana)); 
        moreLink = _this.renderMoreLink(row, nrCol, segsBelow); 
        moreWrap = $('<div/>').append(moreLink); 
        coloana.append(moreWrap); 
        moreNodes.push(moreWrap[0]); 

        // rowStruct.limitedEls = $(limitedNodes); 
       } 
       rowStruct.moreEls = $(moreNodes); // for easy undoing later 
      } 
     }, 

and for the rest i manipulated a litle bit limitRow: function (row, levelLimit) 

also i had to hide the text and i choose a nasty method, not proud of it but ... 

in getMoreLinkText(num) i added a last else if 

else if (num === 0){ 
       return ''; 
      }