diff options
author | Trevor Elliott <trevor@galois.com> | 2013-06-13 11:12:38 -0700 |
---|---|---|
committer | Trevor Elliott <trevor@galois.com> | 2013-06-13 11:12:38 -0700 |
commit | 2243f840e7562022fe0f3c711d8b41f8550c69d2 (patch) | |
tree | 5f5ff1079e06ea965421dbb8e2cd151dfcf57ae2 | |
parent | f56fe8d4e4b3a062951f687c71b54945802545c1 (diff) |
Remove url-pat.js
-rw-r--r-- | src/js/firefox/build.mk | 2 | ||||
-rw-r--r-- | src/js/fiveui/js/options.js | 55 | ||||
-rw-r--r-- | src/js/fiveui/js/settings.js | 2 | ||||
-rw-r--r-- | src/js/fiveui/js/update-manager.js | 14 | ||||
-rw-r--r-- | src/js/fiveui/js/url-pat.js | 140 | ||||
-rw-r--r-- | src/js/fiveui/js/utils.js | 13 | ||||
-rw-r--r-- | src/js/fiveui/options.html | 1 | ||||
-rw-r--r-- | src/js/tests/PhantomJSJasmineRunner.html | 1 | ||||
-rw-r--r-- | src/js/tests/SpecRunner.html | 1 | ||||
-rw-r--r-- | src/js/tests/build.mk | 2 |
10 files changed, 19 insertions, 212 deletions
diff --git a/src/js/firefox/build.mk b/src/js/firefox/build.mk index 1807a45..0a20a80 100644 --- a/src/js/firefox/build.mk +++ b/src/js/firefox/build.mk @@ -58,8 +58,6 @@ quiet_cmd_compilejs = JSC $(call drop-prefix,$@) $(firefox-build)/data/main.js: \ $(firefox-dir)/lib/main.js \ $(fiveui-dir)/js/set.js \ - $(fiveui-dir)/js/url-pat.js \ - $(fiveui-dir)/js/url-pat.js \ $(fiveui-dir)/js/settings.js \ $(fiveui-dir)/js/messenger.js \ $(fiveui-dir)/js/state.js \ diff --git a/src/js/fiveui/js/options.js b/src/js/fiveui/js/options.js index 598649f..2a4f00e 100644 --- a/src/js/fiveui/js/options.js +++ b/src/js/fiveui/js/options.js @@ -62,50 +62,6 @@ fiveui.options.init = function(port) { var update = new fiveui.UpdateManager(msg); ruleSets = new fiveui.RuleSets([], { url: msg }); - urlPats = new fiveui.UrlPats([], { url: msg }); - - - /** UrlPat list entries ****************************************************/ - - var urlPatEntries = jQuery('#urlPatEntries'); - var addUrlPat = jQuery('#addUrlPat'); - - addUrlPat.prop('disabled', true); - - addUrlPat.on('click', function() { - urlPats.add(new fiveui.UrlPatModel({}, { url : msg })); - }); - - // when a new rule set is sync'd, make sure that the add url pattern button is - // enabled. - ruleSets.on('sync', function() { - if(ruleSets.length > 0) { - addUrlPat.prop('disabled', false); - } - }); - - // when a rule set is destroyed, and the collection is now empty, disable the - // add url pattern button. - ruleSets.on('destroy', function(model,col) { - if(col.length <= 0) { - addUrlPat.prop('disabled', true); - } - }); - - // handle new url patterns being added to the collection. - urlPats.on('add', function(model) { - var view = new fiveui.UrlPatEntry({ - model: model, - rules: new fiveui.RulesView({ model: ruleSets }) - }); - urlPatEntries.append(view.$el); - - if(model.isNew()) { - view.edit(); - } else { - view.render(); - } - }); /** RuleSet list entries ***************************************************/ @@ -129,7 +85,6 @@ fiveui.options.init = function(port) { if(model.isNew()) { entry.edit(); } else { - addUrlPat.prop('disabled', false); entry.render(); } }); @@ -198,7 +153,7 @@ fiveui.options.init = function(port) { setClickHandler(jQuery('#rule-sets'), select('#tab-rule-sets')); setClickHandler(jQuery('#basics'), select('#tab-basics')); - // select the url patterns tab by default + // select the rule sets tab selectNav(jQuery('#rule-sets')); selectSection(jQuery('#tab-rule-sets')); @@ -209,12 +164,8 @@ fiveui.options.init = function(port) { jQuery('#windowDisplayDefault').prop('checked', def); }); - // pre-populate the rule set and url pattern lists - ruleSets.fetch({ - success:function() { - urlPats.fetch(); - } - }); + // pre-populate the rule sets + ruleSets.fetch(); }; diff --git a/src/js/fiveui/js/settings.js b/src/js/fiveui/js/settings.js index 96ec864..15ccf1b 100644 --- a/src/js/fiveui/js/settings.js +++ b/src/js/fiveui/js/settings.js @@ -200,7 +200,7 @@ _.extend(fiveui.Settings.prototype, { return _.find(this.getRuleSets(), function(rs) { var pat = _.find(rs.patterns, function(pat) { - var regex = fiveui.UrlPat.compile(pat); + var regex = fiveui.utils.compilePattern(pat); return regex.test(url); }); diff --git a/src/js/fiveui/js/update-manager.js b/src/js/fiveui/js/update-manager.js index 8013d2f..d134c0d 100644 --- a/src/js/fiveui/js/update-manager.js +++ b/src/js/fiveui/js/update-manager.js @@ -28,20 +28,6 @@ fiveui.UpdateManager = function(msg) { // fired when the rule set gets updated msg.register('updateRuleSet', function(newRuleSet) { manager.trigger('updateRuleSet.' + newRuleSet.id, false, newRuleSet); - - // update the associated url patterns - msg.send('getRuleSetPatIds', null, function(patIds) { - _.each(patIds, function(patId) { - manager.trigger('updateUrlPat.' + patId); - }); - }); - }); - - // fired when the url pat gets removed - msg.register('remUrlPat', function(id) { - var evt = 'remUrlPat.' + id; - manager.trigger(evt); - manager.off(evt); }); }; diff --git a/src/js/fiveui/js/url-pat.js b/src/js/fiveui/js/url-pat.js deleted file mode 100644 index d723021..0000000 --- a/src/js/fiveui/js/url-pat.js +++ /dev/null @@ -1,140 +0,0 @@ - -(function() { - -/** - * Create a new Url Pattern to map urls to Rule Sets. - * - * @constructor - * @param {!number} id New id for this UrlPat. - * @param {!string} regex The pattern that is used to match Urls. - * @param {!number} rule_id Unique id of the RuleSet to use for matching URLs. - */ -fiveui.UrlPat = function(id, regex, rule_id) { - this.id = id; - this.regex = regex; - this.rule_id = rule_id; -}; - -/** - * Create a Url Pattern from a JSON object. - * - * @param {!number} id The id to use for the restored object. - * @param {!Object} obj The object to take settings from. - * @return {!fiveui.UrlPat} A populated UrlPat object. - */ -fiveui.UrlPat.fromJSON = function(id, obj) { - return new fiveui.UrlPat(id, obj.regex, obj.rule_id); -}; - -/** - * Create a regular expression from a globbed pattern. - * - * @param {!string} str The globbed url. - * @return {!RegExp} A compiled regular expression. - */ -fiveui.UrlPat.compile = function(str) { - var regex = str.replace(/\./g, '\.') - .replace(/\*/g, '.*'); - return new RegExp(regex); -}; - -/** - * Test a string Url against the regular expression held in a Url Pattern. - * - * @param {!string} url The Url the string to test. - * @return {!boolean} If the Url matched the regular expression. - */ -fiveui.UrlPat.prototype.match = function(url) { - var pat = fiveui.UrlPat.compile(this.regex); - return pat.test(url); -}; - - - -fiveui.UrlPatModel = Backbone.Model.extend({ - - defaults: { - id: null, - regex: '', - rule_id: null, - }, - - sync:function(method, model, options) { - _.defaults(options, { - success:function() {}, - error:function() {} - }); - - var msg = model.url; - var id = model.get('id'); - - switch(method) { - case 'read': - msg.send('getUrlPat', id, function(pat) { - model.set(pat); - options.success(); - }); - break; - - case 'update': - msg.send('updateUrlPat', _.clone(model.attributes), options.success); - break; - - case 'create': - msg.send('addUrlPat', _.clone(model.attributes), options.success); - break; - - case 'delete': - msg.send('remUrlPat', id, function(res) { - if(res) { - options.success({}); - } else { - options.error({}); - } - }); - break; - } - } - -}, { - - fromUrlPat: function(pat, msg) { - return new fiveui.UrlPatModel({ - id: pat.id, - regex: pat.regex, - rule_id: pat.rule_id - }, { url : msg }); - } - -}); - - -fiveui.UrlPats = Backbone.Collection.extend({ - - model: fiveui.UrlPatModel, - - sync:function(method, collection, options) { - - _.defaults(options, { - success:function() {}, - error:function() {} - }); - - var msg = this.url; - - switch(method) { - - case 'read': - msg.send('getUrlPats', null, function(pats) { - options.success(_.map(pats, function(pat) { - return fiveui.UrlPatModel.fromUrlPat(pat, msg); - })); - }); - break; - } - - } - -}); - -})(); diff --git a/src/js/fiveui/js/utils.js b/src/js/fiveui/js/utils.js index 0ab3128..204d961 100644 --- a/src/js/fiveui/js/utils.js +++ b/src/js/fiveui/js/utils.js @@ -76,6 +76,19 @@ fiveui.utils.getNewId = function(list) { /** + * Create a regular expression from a globbed pattern. + * + * @param {!string} str The globbed url. + * @return {!RegExp} A compiled regular expression. + */ +fiveui.utils.compilePattern = function(str) { + var regex = str.replace(/\./g, '\.') + .replace(/\*/g, '.*'); + return new RegExp(regex); +}; + + +/** * Remove c-style comments * * There's probably a faster way to do this. diff --git a/src/js/fiveui/options.html b/src/js/fiveui/options.html index 0115368..1d07eb1 100644 --- a/src/js/fiveui/options.html +++ b/src/js/fiveui/options.html @@ -39,7 +39,6 @@ <script src="js/update-manager.js"></script> <script src="js/utils.js"></script> <script src="js/rules.js"></script> - <script src="js/url-pat.js"></script> <script src="js/platform-ajax.js"></script> <script src="js/platform-options.js"></script> </head> diff --git a/src/js/tests/PhantomJSJasmineRunner.html b/src/js/tests/PhantomJSJasmineRunner.html index e8e07e6..606a251 100644 --- a/src/js/tests/PhantomJSJasmineRunner.html +++ b/src/js/tests/PhantomJSJasmineRunner.html @@ -23,7 +23,6 @@ <script type="text/javascript" src="../fiveui/js/chan.js"></script> <script type="text/javascript" src="../fiveui/js/rules.js"></script> <script type="text/javascript" src="../fiveui/js/messenger.js"></script> - <script type="text/javascript" src="../fiveui/js/url-pat.js"></script> <script type="text/javascript" src="../fiveui/js/settings.js"></script> <script type="text/javascript" src="../fiveui/js/state.js"></script> <script type="text/javascript" src="../fiveui/injected/prelude.js"></script> diff --git a/src/js/tests/SpecRunner.html b/src/js/tests/SpecRunner.html index 3469bfd..606967e 100644 --- a/src/js/tests/SpecRunner.html +++ b/src/js/tests/SpecRunner.html @@ -21,7 +21,6 @@ <script type="text/javascript" src="../fiveui/js/chan.js"></script> <script type="text/javascript" src="../fiveui/js/rules.js"></script> <script type="text/javascript" src="../fiveui/js/messenger.js"></script> - <script type="text/javascript" src="../fiveui/js/url-pat.js"></script> <script type="text/javascript" src="../fiveui/js/settings.js"></script> <script type="text/javascript" src="../fiveui/js/state.js"></script> <script type="text/javascript" src="../fiveui/injected/prelude.js"></script> diff --git a/src/js/tests/build.mk b/src/js/tests/build.mk index 3ab79c0..8facda7 100644 --- a/src/js/tests/build.mk +++ b/src/js/tests/build.mk @@ -12,6 +12,8 @@ $(call strict-error,"phantomjs not found: unable to run javascript tests") else test: test-js + +.PHONY: test-js test-js: cd $(topdir)/src/js && $(phantomjs-cmd) \ lib/phantomjs_jasmine/phantomjs_jasminexml_runner.js \ |