PageSourceSearch

https://www.sbps.net/Common/controls/ContentItemModern/scripts/ContentItemFolder.js

js sbps.net collected 2026-10-01 16:26:37 UTC 8,552 bytes, 211 lines download raw bytes

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.