1var ContentItemFolder = function (parent, contextId, object) { 2 var objectId = object.Id; 3 var contentItemData; 4 var folderCtrlSel = "#upsertFolderSection"; 5 var saveBtnSel = folderCtrlSel + " .saveFolderBtn"; 6 var nameSel = folderCtrlSel + " #txtFolderName"; 7 var descSel = folderCtrlSel + " #txtFolderDescription"; 8 var closeBtnSel = folderCtrlSel + " .closeFolderBtn"; 9 10 var displayModalWindow; 11 var commons = new ContentCommon(); 12 var res = commons.Resources; 13 var title = res["Add"] + " " + res["folder"]; 14 var updateFolder = res["Update"] + " " + res["folder"].Propercase(); 15 var clearForm = function () { 16 $(nameSel).val(""); 17 $('label[for="' + $(nameSel).attr("id") + '"] span.valMsg').show(); 18 $(descSel).val(""); 19 }; 20 21 formchange = false; 22 var setDataInForm = function () { 23 if (objectId > 0) { 24 $.when(contentItemData.GetFolderDetailWithActivity(objectId)).then(function (result) { 25 var resp = result.d; 26 if (resp.RequestStatus != null && resp.RequestStatus.RequestError) { 27 commons.ShowErrorMessage(resp.RequestStatus.RequestErrorMessage); 28 displayModalWindow.closeModalWindow(); 29 30 } else { 31 resp = result.d.DataObject; 32 $(nameSel).val(resp.Name); 33 $('label[for="' + $(nameSel).attr("id") + '"] span.valMsg').hide(); 34 $(descSel).val(resp.Description); 35 } 36 }); 37 return false; 38 } 39 }; 40 41 //Initialisation of an object 42 var initialise = function () { 43 var parentWidth = $(".PO-wrapper").width(); 44 contentItemData = new ContentItemData(contextId); 45 displayModalWindow = new ContentItemModalWindow(contextId); 46 commons.ShowBreadCrumbs(parent, folderCtrlSel); 47 if (parentWidth >= 525) { 48 displayModalWindow.openModalWindow(folderCtrlSel, "upsertFolderSection", objectId > 0 ? updateFolder : title, 600, 470, null, true, true, parent, this); 49 } else { 50 displayModalWindow.openModalWindow(folderCtrlSel, "upsertFolderSection", objectId > 0 ? updateFolder : title, parentWidth, 470, null, true, true, parent, this); 51 } 52 if (objectId > 0) { 53 title = updateFolder; 54 $(saveBtnSel).text(updateFolder); 55 $(saveBtnSel).removeAttr("title"); 56 $(saveBtnSel).attr("title", updateFolder); 57 } 58 if (objectId > 0) { 59 setDataInForm(); 60 } else { 61 clearForm(); 62 } 63 $(nameSel).focus(); 64 return false; 65 }; 66 67 //Validations for required controls 68 $(folderCtrlSel + " .required").off('blur'); 69 $(folderCtrlSel + " .required").on('blur', function () { 70 var $thisLabel = $('label[for="' + $(this).attr("id") + '"] span.valMsg'); 71 if ($(this).val() == null || $(this).val().trim().length <= 0) { 72 $thisLabel.show(); 73 $thisLabel.html(res["Required"]); 74 } else { 75 $thisLabel.hide(); 76 formchange = true; 77 } 78 }); 79 $(folderCtrlSel + " .required").off('change'); 80 $(folderCtrlSel + " .required").on('change', function () { 81 formchange = true; 82 var $thisLabel = $('label[for="' + $(this).attr("id") + '"] span.valMsg'); 83 if ($(this).val().trim().length > 0) 84 $thisLabel.hide(); 85 }); 86 $(folderCtrlSel + " .required").off('keydown'); 87 $(folderCtrlSel + " .required").on('keydown', function () { 88 var $thisLabel = $('label[for="' + $(this).attr("id") + '"] span.valMsg'); 89 if ($(this).val().trim().length > 0) 90 $thisLabel.hide(); 91 }); 92 $(nameSel + "," + descSel).off("keyup"); 93 $(nameSel + "," + descSel).on("keyup", function (event) { 94 if (event.keyCode == 13) { 95 $(saveBtnSel).trigger("click"); 96 } 97 }); 98 99 //Save button event
100 $(saveBtnSel).off("click"); 101 $(saveBtnSel).on("click", function (e) { 102 e.preventDefault(); 103 var folderObject = { 104 "Name": $(nameSel).val().trim(), 105 "Description": $(descSel).val().trim(), 106 "ParentId": contextId, 107 "objectId": objectId == undefined ? 0 : objectId 108 }; 109 if (folderObject.Name.trim().length <= 0) { 110 //commons.ShowValidationMessage(res["EmptyValidation"].format(res["Name"])); 111 $('label[for="' + $(nameSel).attr("id") + '"] span.valMsg').show(); 112 //$(nameSel).next(".valMsg").html(res["EmptyValidation"].format(res["Name"])); 113 $('label[for="' + $(nameSel).attr("id") + '"] span.valMsg').html(res["Required"]); 114 $(nameSel).focus(); 115 } else if (folderObject.Name.trim().length > 0) { 116 $.when(contentItemData.UpsertFolder(folderObject)).then(function (result) { 117 var resp = result.d; 118 if (resp.RequestStatus != null && resp.RequestStatus.RequestError) { 119 commons.ShowErrorMessage(resp.RequestStatus.RequestErrorMessage); 120 } else { 121 if (objectId > 0) 122 commons.ShowUpdateMessage(res["updated"].format(folderObject.Name, res["folder"])); 123 else 124 commons.ShowCreateMessage(res["created"].format(folderObject.Name, res["folder"])); 125 if (displayModalWindow) { 126 displayModalWindow.closeModalWindow(); 127 } 128 parent.initialise(); 129 } 130 }); 131 } 132 return false; 133 }); 134 135 //Close button event 136 $(closeBtnSel).off("click"); 137 $(closeBtnSel).on("click", function (e) { 138 e.preventDefault(); 139 displayModalWindow.closeModalWindow(); 140 purge(this); 141 return false; 142 }); 143 var distroy = function () { 144 purge(this); 145 }; 146 147 var purge = function purge(obj) { 148 var att = obj.attributes, 149 ind, len, nam; 150 if (att) { 151 for (ind = att.length - 1; ind >= 0; ind -= 1) { 152 nam = att[ind].name; 153 if (typeof obj[nam] === 'function') { 154 obj[nam] = null; 155 } 156 } 157 } 158 att = obj.childNodes; 159 if (att) { 160 len = att.length; 161 for (ind = 0; ind < len; ind += 1) { 162 purge(obj.childNodes[ind]); 163 } 164 } 165 } 166 //Delete Folder 167 var deleteFolder = function (folderName) { 168 swal({ 169 title: res["DeleteSure"], 170 text: res["DeleteFolderConfirm"].toString().format(folderName), 171 type: "warning", 172 showCancelButton: true, 173 confirmButtonColor: "#DD6B55", 174 confirmButtonText: res["DeleteYes"], //"Yes, delete it!", 175 cancelButtonText: res["CancelX"], 176 closeOnConfirm: true, 177 178 }).then(function (isConfirm) { 179 if (isConfirm) { 180 contentItemData = new ContentItemData(contextId); 181 if (objectId > 0) { 182 $.when(contentItemData.DeleteFolder(objectId)).then(function (result) { 183 var resp = result.d; 184 if (resp.RequestStatus != null && resp.RequestStatus.RequestError) { 185 commons.ShowErrorMessage(resp.RequestStatus.RequestErrorMessage); 186 } else { 187 swal({ 188 title: res["folder"], 189 text: res["deleted"].format(folderName, res["folder"]), 190 type: "success", 191 showConfirmButton: true, 192 allowEscapeKey: true, 193 onClose: () => { 194 parent.initialise(); 195 parent.ShowListfocus(); 196 } 197 }).catch(function () { });
198 } 199 }); 200 } 201 } 202 return false; 203 }).catch(function () {}); 204 }; 205 206 return { 207 initialise: initialise, 208 DeleteFolder: deleteFolder, 209 Distroy: distroy 210 } 211};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.