diff options
| author | alexwl <alexey.a.kiryushin@gmail.com> | 2018-10-02 13:17:04 +0300 | 
|---|---|---|
| committer | alexwl <alexey.a.kiryushin@gmail.com> | 2018-10-02 13:17:04 +0300 | 
| commit | cf2c56c7061b7ed40fdd3b40a352ddb9c9b7371f (patch) | |
| tree | b1de9ada0f1b1cb064e3a9e0d4042d1f519085bd /javascript/app/routes/package | |
Initial commit
Diffstat (limited to 'javascript/app/routes/package')
| -rw-r--r-- | javascript/app/routes/package/index.js | 7 | ||||
| -rw-r--r-- | javascript/app/routes/package/search.js | 36 | ||||
| -rw-r--r-- | javascript/app/routes/package/show/file.js | 27 | ||||
| -rw-r--r-- | javascript/app/routes/package/show/index.js | 7 | 
4 files changed, 77 insertions, 0 deletions
diff --git a/javascript/app/routes/package/index.js b/javascript/app/routes/package/index.js new file mode 100644 index 0000000..e36abd5 --- /dev/null +++ b/javascript/app/routes/package/index.js @@ -0,0 +1,7 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({   +  afterModel : function (model,transition) {     +    transition.send("fileOpened",null);     +  } +}); diff --git a/javascript/app/routes/package/search.js b/javascript/app/routes/package/search.js new file mode 100644 index 0000000..7bc711b --- /dev/null +++ b/javascript/app/routes/package/search.js @@ -0,0 +1,36 @@ +import Ember from 'ember'; +import {urls} from '../../utils/api-urls'; +import {goToDefinition} from '../../utils/go-to-definition'; + +export default Ember.Route.extend({ +  store : Ember.inject.service('store'), +  model (params) { +    return { +      query: params.query, +      url: urls.identifierSearchUrl(this.modelFor('package').id,params.query)+"?per_page=20" +    }; +  }, +  afterModel () {     +    const onmouseup = (event) => { +      // This makes links in documentation clickable +      if(event.target.dataset.location) { +        let location; +        try { +          location = JSON.parse(event.target.dataset.location); +        } catch (e) { +          console.log(e); +        } +        if(location) { +          goToDefinition(this.get('store'),location,event.which); +        } +      } +    }; +    this._onmouseup = onmouseup; +    document.addEventListener('mouseup',onmouseup);     +  }, +  deactivate() { +    if(this._onmouseup) { +      document.removeEventListener('mouseup',this._onmouseup); +    } +  } +}); diff --git a/javascript/app/routes/package/show/file.js b/javascript/app/routes/package/show/file.js new file mode 100644 index 0000000..ead6ee8 --- /dev/null +++ b/javascript/app/routes/package/show/file.js @@ -0,0 +1,27 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ +  store : Ember.inject.service(), +  model : function (params) { +    const packageInfo = this.modelFor('package');     +    if(packageInfo.modules[params.filePath]) {       +      return this.get('store').loadHaskellModule(packageInfo.id,params.filePath) +        .catch((e) => {console.log(e);this.transitionTo("/not-found");});       +    } else { +      return this.get('store').loadFile(packageInfo.id,params.filePath) +        .then((result) => {           +          document.title = packageInfo.id; +          return result; +        }) +        .catch((e) => {console.log(e);this.transitionTo("/not-found");}); +    } +  }, +  afterModel (model) {     +    document.title = model.id + " - " + this.modelFor('package').id; +  }, +  actions : { +    didTransition : function () {             +      this.send("fileOpened",this.currentModel.id);     +    }     +  } +}); diff --git a/javascript/app/routes/package/show/index.js b/javascript/app/routes/package/show/index.js new file mode 100644 index 0000000..e36abd5 --- /dev/null +++ b/javascript/app/routes/package/show/index.js @@ -0,0 +1,7 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({   +  afterModel : function (model,transition) {     +    transition.send("fileOpened",null);     +  } +});  | 
