{"version":3,"sources":["fields/src/fields.js"],"names":["$","FieldsAdmin","Garnish","Base","extend","$groups","init","$selectedGroup","find","addListener","$groupSettingsBtn","menuBtn","onOptionSelect","proxy","settings","elem","data","renameSelectedGroup","this","deleteSelectedGroup","addNewGroup","name","promptForGroupName","textStatus","response","href","getUrl","errors","Craft","group","id","flattenErrors","alert","t","join","cp","displayError","oldName","text","newName","postActionRequest","displayNotice","prompt","success","location","responseErrors","attribute","concat","hasOwnProperty","$doc","ready","jQuery"],"mappings":"CAAA,SAACA,GAEG,IAAAC,EAAAC,QAAAC,KAAAC,OAAA,CACIH,QAAW,KACXI,eADkC,KAI9BC,KAAE,WACGD,KAAAA,QAAYL,EAAA,WACZO,KAAAA,eAAsBF,KAAAA,QAAaG,KAAA,eACnCC,KAAAA,YAAcT,EAAA,gBAAiB,WAAY,eAEhD,IAAIU,EAAoBV,EAAE,qBAGlBW,EAAUD,SAEGE,EAAmBC,KAAM,WAAlCC,SAASF,eAAiBZ,EAAEa,OAAM,SAASE,GAI5B,OADnBf,EAAAe,GAAAC,KAAA,WAEaC,IAAAA,SACLC,KAAAD,sBACH,MACI,IAAL,SAAeC,KAAAC,yBALnBD,QAcZE,YAAa,WACLC,IAAIA,EAAQC,KAAAA,mBAAhB,IAEID,GAAMA,EAAA,CACE,IAAGL,EAAA,CACDK,KAAAA,GAIFE,MAAAA,kBAA0B,oBAAAP,EAAAhB,EAAAa,OAAA,SAAAW,EAAAD,GACtBC,GAAkB,YAAVD,EACCE,GAATD,EAAsBE,QACfF,SAASG,KAAQC,MAAAF,OAAA,mBAAAF,EAAAK,MAAAC,SACX,GAAKC,EAAAA,OAAcP,CAClB,IAAAG,EAAOT,KAAAa,cAAAP,EAAiCG,QACnDK,MAAAJ,MAAAK,EAAA,MAAA,+BAAA,OAAAN,EAAAO,KAAA,YAENN,MAAAO,GAAAC,iBAGZlB,SAIDD,oBACmBK,WADnB,IAAIe,EAAUnB,KAAKX,eAAe+B,OAG9BC,EAAWA,KAAOjB,mBAAce,GAE1B,GAAEE,GAAKhC,IAAoB8B,EADtB,CAEDE,IAAAA,EAAAA,CAFVT,GAAAZ,KAAAX,eAAAS,KAAA,MAKMwB,KAAAA,GAGMZ,MAAKrB,kBAAoBiB,oBAAzBR,EAAAhB,EAAAa,OAAA,SAAAW,EAAAD,GACMY,GAAiBP,YAAda,EACFjB,GAAAA,EAASG,QACHT,KAAKa,eAAcP,KAAAA,EAAhCK,MAAAR,MACcO,MAARO,GAAeM,cAAAb,MAAAK,EAAA,MAAf,wBACH,GAAAT,EAAAG,OAAA,CACMS,IAAAA,EAATlB,KAAAa,cAAAP,EAAAG,QACHK,MAAAJ,MAAAK,EAAA,MAAA,+BAAA,OAAAN,EAAAO,KAAA,YAVTN,MAAAO,GAAAC,iBAgBRd,SAKIA,mBAAoB,SAAOe,GACnBrB,OAAO0B,OAAAd,MAAAK,EAAA,MAAA,uCAAAI,IAIXT,oBAAMY,WACF,GAAIjB,QAAUK,MAAKK,EAAA,MAAnB,mEAA8B,CACtBT,IAAAA,EAASmB,CACTC,GAASnB,KAATlB,eAA6BS,KAAA,OAGhCY,MAAAY,kBAAA,sBAAAxB,EAAAhB,EAAAa,OAAA,SAAAW,EAAAD,GACJ,YAAAA,IAPLC,EAAAmB,QASHC,SAAAnB,KAAAG,MAAAF,OAAA,mBAGUE,MAASiB,GAAAA,kBAGXC,SAHbf,cAAe,SAASc,GAQhBlB,IAAMA,EAAUoB,GALpB,IAAK,IAAID,KAAaD,EAQtBA,EAAAG,eAAAF,KAKE7C,EAAc0B,EAAI1B,OAAJ4C,EAApBC,KALI,OAAOnB,KAIfzB,QAAQ+C,KAAKC,OAAM,WACftB,MAAM3B,YAAc,IAAIA,KAzHhC,CA2HGkD","file":"fields.min.js","sourcesContent":["(function($) {\n    /** global: Craft */\n    /** global: Garnish */\n    var FieldsAdmin = Garnish.Base.extend({\n        $groups: null,\n        $selectedGroup: null,\n\n        init: function() {\n            this.$groups = $('#groups');\n            this.$selectedGroup = this.$groups.find('a.sel:first');\n            this.addListener($('#newgroupbtn'), 'activate', 'addNewGroup');\n\n            var $groupSettingsBtn = $('#groupsettingsbtn');\n\n            if ($groupSettingsBtn.length) {\n                var menuBtn = $groupSettingsBtn.data('menubtn');\n\n                menuBtn.settings.onOptionSelect = $.proxy(function(elem) {\n                    var action = $(elem).data('action');\n\n                    switch (action) {\n                        case 'rename': {\n                            this.renameSelectedGroup();\n                            break;\n                        }\n                        case 'delete': {\n                            this.deleteSelectedGroup();\n                            break;\n                        }\n                    }\n                }, this);\n            }\n        },\n\n        addNewGroup: function() {\n            var name = this.promptForGroupName('');\n\n            if (name) {\n                var data = {\n                    name: name\n                };\n\n                Craft.postActionRequest('fields/save-group', data, $.proxy(function(response, textStatus) {\n                    if (textStatus === 'success') {\n                        if (response.success) {\n                            location.href = Craft.getUrl('settings/fields/' + response.group.id);\n                        } else if (response.errors) {\n                            var errors = this.flattenErrors(response.errors);\n                            alert(Craft.t('app', 'Could not create the group:') + \"\\n\\n\" + errors.join(\"\\n\"));\n                        } else {\n                            Craft.cp.displayError();\n                        }\n                    }\n                }, this));\n            }\n        },\n\n        renameSelectedGroup: function() {\n            var oldName = this.$selectedGroup.text(),\n                newName = this.promptForGroupName(oldName);\n\n            if (newName && newName !== oldName) {\n                var data = {\n                    id: this.$selectedGroup.data('id'),\n                    name: newName\n                };\n\n                Craft.postActionRequest('fields/save-group', data, $.proxy(function(response, textStatus) {\n                    if (textStatus === 'success') {\n                        if (response.success) {\n                            this.$selectedGroup.text(response.group.name);\n                            Craft.cp.displayNotice(Craft.t('app', 'Group renamed.'));\n                        } else if (response.errors) {\n                            var errors = this.flattenErrors(response.errors);\n                            alert(Craft.t('app', 'Could not rename the group:') + \"\\n\\n\" + errors.join(\"\\n\"));\n                        } else {\n                            Craft.cp.displayError();\n                        }\n                    }\n                }, this));\n            }\n        },\n\n        promptForGroupName: function(oldName) {\n            return prompt(Craft.t('app', 'What do you want to name the group?'), oldName);\n        },\n\n        deleteSelectedGroup: function() {\n            if (confirm(Craft.t('app', 'Are you sure you want to delete this group and all its fields?'))) {\n                var data = {\n                    id: this.$selectedGroup.data('id')\n                };\n\n                Craft.postActionRequest('fields/delete-group', data, $.proxy(function(response, textStatus) {\n                    if (textStatus === 'success') {\n                        if (response.success) {\n                            location.href = Craft.getUrl('settings/fields');\n                        } else {\n                            Craft.cp.displayError();\n                        }\n                    }\n                }, this));\n            }\n        },\n\n        flattenErrors: function(responseErrors) {\n            var errors = [];\n\n            for (var attribute in responseErrors) {\n                if (!responseErrors.hasOwnProperty(attribute)) {\n                    continue;\n                }\n\n                errors = errors.concat(responseErrors[attribute]);\n            }\n\n            return errors;\n        }\n    });\n\n    Garnish.$doc.ready(function() {\n        Craft.FieldsAdmin = new FieldsAdmin();\n    });\n})(jQuery);\n"]}