{"version":3,"sources":["updateswidget/src/UpdatesWidget.js"],"names":["$","Craft","UpdatesWidget","Garnish","Base","extend","$widget","$body","checking","init","widgetId","cached","find","initBtn","checkForUpdates","addListener","this","$btn","lookLikeWereChecking","addClass","dontLookLikeWereChecking","removeClass","forceRefresh","cp","showUpdateInfo","bind","info","updateText","total","t","html","getUrl","updateUtilitiesBadge","jQuery"],"mappings":"CAAA,SAACA,GAEGC,MAAAC,cAAAC,QAAAC,KAAAC,OAAA,CACMH,QAAAA,KACFI,MAAS,KACTC,KAAO,KACHC,UAHkC,EAMlCC,KAAE,SAASC,EAAUC,GAChBL,KAAAA,QAAYN,EAAA,UAAYU,GACxBH,KAALA,MAAkBD,KAAAA,QAAaM,KAAA,eAC1BC,KAAAA,UAELF,GACSG,KAAAA,iBAAL,IAKJD,QAAA,WACKE,KAAAA,KAAYC,KAAKC,MAAML,KAAA,cACxBI,KAAKF,YAAgBE,KAArBC,KAAA,SAAA,WADJD,KAAAF,iBAAA,OAOAI,qBAAsB,WACjBD,KAAKE,UAAS,EA1BeH,KAAAV,QAAAa,SAAA,WA6BtCC,KAAAA,KAAAA,SAA0B,aA7BYA,yBAAA,WAkCtCN,KAAAA,UAAiB,EACTE,KAAKR,QAAUa,YAAA,YADvBP,gBAAiB,SAASQ,GAKjBJ,KAAAA,WAKAE,KAAAA,uBAJLnB,MAAMsB,GAAGT,gBAAgBQ,GAAc,EAAON,KAAKQ,eAAeC,KAAKT,SAG3EQ,eAAgB,SAASE,GASbC,IAAUA,GAHVD,KAAKE,2BAEFF,EAAAE,QAEND,EADG,GAAAD,EAAAE,MACH3B,MAAA4B,EAAA,MAAA,yBAGG5B,MAAA4B,EAAA,MAAA,6BAEA,CAAAD,MAAAF,EAAAE,QASCf,KAALN,MAAAuB,KAGJ,0BAbQH,EACA,+BAAiC1B,MAAM8B,OAAO,qBAAuB,KAAO9B,MAAM4B,EAAE,MAAO,iBAYnG,cAzEZb,KAAAT,MAAAuB,KAkEoB,0BAA4B7B,MAAM4B,EAAE,MAAO,gCAA3C,oFACkF5B,MAAM4B,EAAE,MAAO,eAAiB,iBAGtHb,KAAKH,WAITZ,MAAMsB,GAAGS,0BA1ErB,CA6EGC","file":"UpdatesWidget.min.js","sourcesContent":["(function($) {\n    /** global: Craft */\n    /** global: Garnish */\n    Craft.UpdatesWidget = Garnish.Base.extend({\n        $widget: null,\n        $body: null,\n        $btn: null,\n        checking: false,\n\n        init: function(widgetId, cached) {\n            this.$widget = $('#widget' + widgetId);\n            this.$body = this.$widget.find('.body:first');\n            this.initBtn();\n\n            if (!cached) {\n                this.checkForUpdates(false);\n            }\n        },\n\n        initBtn: function() {\n            this.$btn = this.$body.find('.btn:first');\n            this.addListener(this.$btn, 'click', function() {\n                this.checkForUpdates(true);\n            });\n        },\n\n        lookLikeWereChecking: function() {\n            this.checking = true;\n            this.$widget.addClass('loading');\n            this.$btn.addClass('disabled');\n        },\n\n        dontLookLikeWereChecking: function() {\n            this.checking = false;\n            this.$widget.removeClass('loading');\n        },\n\n        checkForUpdates: function(forceRefresh) {\n            if (this.checking) {\n                return;\n            }\n\n            this.lookLikeWereChecking();\n            Craft.cp.checkForUpdates(forceRefresh, false, this.showUpdateInfo.bind(this));\n        },\n\n        showUpdateInfo: function(info) {\n            this.dontLookLikeWereChecking();\n\n            if (info.total) {\n                var updateText;\n\n                if (info.total == 1) {\n                    updateText = Craft.t('app', 'One update available!');\n                } else {\n                    updateText = Craft.t('app', '{total} updates available!', {total: info.total});\n                }\n\n                this.$body.html(\n                    '<p class=\"centeralign\">' +\n                    updateText +\n                    ' <a class=\"go nowrap\" href=\"' + Craft.getUrl('utilities/updates') + '\">' + Craft.t('app', 'Go to Updates') + '</a>' +\n                    '</p>'\n                );\n            } else {\n                this.$body.html(\n                    '<p class=\"centeralign\">' + Craft.t('app', 'Congrats! You’re up to date.') + '</p>' +\n                    '<p class=\"centeralign\"><button type=\"button\" class=\"btn\" data-icon=\"refresh\">' + Craft.t('app', 'Check again') + '</button></p>'\n                );\n\n                this.initBtn();\n            }\n\n            // Update the CP header badge\n            Craft.cp.updateUtilitiesBadge();\n        }\n    });\n})(jQuery);\n"]}